Data Management Report Transformative Change Assessment Corpus - SOD

Author
Affiliation

Rainer M. Krug

Published

May 2, 2024

Doi
Abstract

The literature search for the assessment corpus was conducted using search terms provided by the experts and refined in co-operation with the Knowldge and Data task force. The search was conducted using OpenAlex, scripted from R to use the API. Search terms for the following searches were defined: Transformative Change, Nature / Environment and additional search terms for individual chapters and sub-chapters To assess the quality of the corpus, sets of key-papers were selected by the experts to verify if these are in the corpus. These key-papers were selected per chapter / sub-chapter to ensure that the corpus is representative of each chapter.

Keywords

DMR, TCA, Assessment Corpus

DOI GitHub release GitHub commits since latest release License: CC BY 4.0

Working Title

IPBES_TCA_Corpus

Code repo

Github repository

Build No: 566

Introduction

The following terminology is used in this document:

  • Individual corpus: The corpus resulting from one search term, e.g. transformative or nature or ChX_Y
  • Assessment Corpus: The corpus resulting from the search terms transformative AND nature
  • Chapter corpus: The corpus resulting from transformative AND Nature AND ChX_Y

The following searches are conducted on Title and Abstrat only as the availability of fulltext drops in 2020. OpenAlex did “inherit” fro Microsoft Academic their initial corpus in 2021 which contained a lot of fulltext for searches. After that time, other sources had to be used which did not include fulltext for searches. To eliminate this bias, we linit the search for terms in abstract and title only.

Schematic Overview

Show the code
#|

basename <- file.path("figures", "tca_corpus", "tca_corpus")

nf <- list.files(
    path = dirname(basename),
    pattern = basename(basename)
) |>
    length()

if (nf < 3) {
    puml <- readLines(file.path("input", "tca_corpus", "tca_corpus.plantuml")) |>
        paste(collapse = "\n") |>
        plantuml::plantuml()

    puml |>
        plantuml::get_graph(
            file = file.path("figures", "tca_corpus", "tca_corpus_overview.pdf")
        )

    puml |>
        plantuml::get_graph(
            file = file.path("figures", "tca_corpus", "tca_corpus_overview.svg")
        )

    puml |>
        plantuml::get_graph(
            file = file.path("figures", "tca_corpus", "tca_corpus_overview.png")
        )
}

Schematic overview of the TCA Corpus as well as othher corpora using the TCA Corpus

Search Terms

Here are the search terms used in this document. They were provided by the authors, and some adaptations were done by the tsu to adopt them for OpenAlex.

Transformative Change

Show the code
cat(params$s_1_transformative_change)
(
    (
        (
            transformation
            OR transition
            OR transformative
            OR "transformative change"
        )
        OR (
            (
                shift
                OR change
            )
            AND (
                fundamental
                OR deep
                OR radical
            )
        )
    )
    AND (
        socio
        OR social
        OR politics
        OR political
        OR governance
        OR economic
        OR cultural
        OR system
        OR technological
        OR inner
        OR personal
        OR financial
        OR business
    )
)
OR (
    (
        "transformative change"
        OR "deliberate transformation"
        OR "transformative turn"
        OR transition
        OR "social-ecological change"
        OR "deep change"
        OR "fundamental alteration"
        OR "profound change"
        OR "profound transformation"
        OR "radical transformation"
        OR "transformational change"
        OR "complete change"
        OR "complete transformation"
        OR "drastic change"
        OR "in-depth transformation"
        OR "progressive change"
        OR "radical alteration"
        OR "radical change"
        OR "revolutionary change"
        OR "significant modification"
        OR "total transformation"
        OR transition
        OR pathway
        OR power
        OR agency
        OR scale
        OR leverage
        OR context
        OR process
        OR regime
        OR shift
        OR views
        OR value
        OR structure
        OR institution
        OR deliberate
        OR structural
        OR fundamental
        OR system
        OR deep
        OR radical
        OR profound
        OR drastic
        OR widespread
        OR political
        OR economical
        OR structur
        OR complete
        OR progressive
        OR revolutionary
        OR substantial
        OR significant
    )
    AND (
        transformation
        OR alteration
        OR change
        OR turn
        OR action
        OR transition
        OR shift
    )
)

Nature

Show the code
#|

cat(params$s_1_nature_environment)
biodiversity
OR marine
OR terrestrial
OR forest
OR woodland
OR grassland
OR savanna
OR shrubland
OR peatland
OR ecosystem
OR lake
OR river
OR sea
OR ocean
OR meadow
OR heathland
OR mires
OR bog
OR tundra
OR biosphere
OR desert
OR mountain
OR "natural resource"
OR estuary
OR fjord
OR fauna
OR flora
OR soil
OR "coastal waters"
OR wetland
OR freshwater
OR marshland
OR marches
OR dryland
OR seascape
OR landscape
OR coast
OR "arable land"
OR "agricultural land"
OR "natural environment"
OR "environmental resource"
OR agroforest
OR "agro-forest"
OR plantation
OR "protected areas"
OR chaparral
OR sustainable
OR environment
OR conservation
OR ecosystem
OR nature
OR planet
OR Earth
OR biosphere
OR ecological
OR "socio-ecological"
OR restoration
OR wildlife
OR landscape
OR species
OR bioeconomy
OR "resource system"
OR "coupled system"
OR nature

Assessment Corpus

Show the code
#|

cat(params$s_1_tca_corpus)
( biodiversity
OR marine
OR terrestrial
OR forest
OR woodland
OR grassland
OR savanna
OR shrubland
OR peatland
OR ecosystem
OR lake
OR river
OR sea
OR ocean
OR meadow
OR heathland
OR mires
OR bog
OR tundra
OR biosphere
OR desert
OR mountain
OR "natural resource"
OR estuary
OR fjord
OR fauna
OR flora
OR soil
OR "coastal waters"
OR wetland
OR freshwater
OR marshland
OR marches
OR dryland
OR seascape
OR landscape
OR coast
OR "arable land"
OR "agricultural land"
OR "natural environment"
OR "environmental resource"
OR agroforest
OR "agro-forest"
OR plantation
OR "protected areas"
OR chaparral
OR sustainable
OR environment
OR conservation
OR ecosystem
OR nature
OR planet
OR Earth
OR biosphere
OR ecological
OR "socio-ecological"
OR restoration
OR wildlife
OR landscape
OR species
OR bioeconomy
OR "resource system"
OR "coupled system"
OR nature ) 
AND 
( (
    (
        (
            transformation
            OR transition
            OR transformative
            OR "transformative change"
        )
        OR (
            (
                shift
                OR change
            )
            AND (
                fundamental
                OR deep
                OR radical
            )
        )
    )
    AND (
        socio
        OR social
        OR politics
        OR political
        OR governance
        OR economic
        OR cultural
        OR system
        OR technological
        OR inner
        OR personal
        OR financial
        OR business
    )
)
OR (
    (
        "transformative change"
        OR "deliberate transformation"
        OR "transformative turn"
        OR transition
        OR "social-ecological change"
        OR "deep change"
        OR "fundamental alteration"
        OR "profound change"
        OR "profound transformation"
        OR "radical transformation"
        OR "transformational change"
        OR "complete change"
        OR "complete transformation"
        OR "drastic change"
        OR "in-depth transformation"
        OR "progressive change"
        OR "radical alteration"
        OR "radical change"
        OR "revolutionary change"
        OR "significant modification"
        OR "total transformation"
        OR transition
        OR pathway
        OR power
        OR agency
        OR scale
        OR leverage
        OR context
        OR process
        OR regime
        OR shift
        OR views
        OR value
        OR structure
        OR institution
        OR deliberate
        OR structural
        OR fundamental
        OR system
        OR deep
        OR radical
        OR profound
        OR drastic
        OR widespread
        OR political
        OR economical
        OR structur
        OR complete
        OR progressive
        OR revolutionary
        OR substantial
        OR significant
    )
    AND (
        transformation
        OR alteration
        OR change
        OR turn
        OR action
        OR transition
        OR shift
    )
) )

Chapter 1

01

Show the code
#|

cat(params$s_1_ch1_01)
(
    root
    OR underlying
    OR indirect
)
AND (
    driver
    OR cause
)

02

Show the code
#|

cat(params$s_1_ch1_02)
equity
OR inequity
OR just
OR unjust
OR inequality
OR equality
OR Fair
OR unfair

03

Show the code
#|

cat(params$s_1_ch1_03)
scale
OR impact
OR leapfrog
OR transfer

04

Show the code
#|

cat(params$s_1_ch1_04)
inclusive
OR participation
OR participatory
OR engagement
OR democratic
OR coproduct
OR transdisc
OR multiactor
OR "multi-actor"
OR integrat

05

Show the code
#|

cat(params$s_1_ch1_05)
evaluate
OR reflex
OR reflect
OR monitor
OR adapt
OR learn

06

Show the code
#|

cat(params$s_1_ch1_06)
responsib
OR accountable
OR rights
OR steward
OR reciprocity
OR interdependent
OR interdependency
OR (
    relation
    OR relational
    OR plural
    OR diverse
    OR "sustainability-aligned"
    OR (
        care
        AND (
            value
            OR ethic
        )
    )
)

Chapter 2

Show the code
#|

cat(params$s_1_ch2)
vision
OR future
OR visionary
OR scenarios
OR imagination
OR imagery
OR creativity
OR desire
OR wish
OR visioning
OR process
OR "participaory process"
OR "deliberate process"
OR polics
OR target
OR view
OR value
OR cosmovision
OR cosmocentric
OR dream
OR fiction
OR hope
OR mission
OR objective
OR story
OR worldview
OR aspiration
OR action
OR plan
OR strategy
OR intention
OR model
OR solution
OR innovation
OR perspective
OR platform
OR collective action
OR cooperation
OR consultation
OR coalition
OR response
OR movement
OR effort
OR initiative
OR activity
OR reaction
OR performance
OR operation
OR effect
OR task
OR project
OR influence
OR moment
OR discourse
OR motivation
OR iteration
OR roadmap
OR agenda
OR project
OR programm
OR government
OR technique
OR inspiration
OR culture
OR universe
OR reality
OR fantasy
OR perception
OR visualization
OR approach
OR image
OR arquetype
OR existence
OR cosmology
OR co - production
OR knowledge
OR dialogue
OR transmission
OR conceptual
OR ceremony
OR relationships
OR respect
OR reciprocity
OR responsibilities
OR solidarity
OR harmony
OR self - determination
OR community
OR spiritual
OR languague
OR territory
OR opportunity
OR sight
OR foresight
OR idea
OR appearance

Chapter 3

01

Show the code
#|

cat(params$s_1_ch3_01)
Technology
OR Science
OR "science-society"
OR "science-technology"
OR Solution

02

Show the code
#|

cat(params$s_1_ch3_02)
"co-create"
OR "co-creation"
OR solution
OR knowledge
OR system
OR "t-lab"
OR "technology laboratory"
OR education
OR "socio-technical"

03

Show the code
#|

cat(params$s_1_ch3_03)
System
OR pathways
OR connect
OR Agroecolog
OR Institutional
OR Institution
OR Government

04

Show the code
#|

cat(params$s_1_ch3_04)
inner
OR Personal
OR Religion
OR Love
OR Loving
OR Feelings
OR Stewardship
OR Care
OR Beliefs
OR Belief
OR believe
OR Awareness
OR "Self-Awareness"

05

Show the code
#|

cat(params$s_1_ch3_05)
Worldviews
OR Grassroot
OR "Community-based"
OR Indigenous
OR Leadership
OR "Critical Science"
OR Econfeminism
OR "Political Ecology"
OR Power
OR Agency
OR Environment

06

Show the code
#|

cat(params$s_1_ch3_06)
Economic
OR "Political Economy"
OR institution
OR govern
OR economy
OR governance
OR government
OR globalization
OR states
OR colonial
OR colonialiasism
OR labour
OR organization
OR organisation

Chapter 4

01

Show the code
#|

cat(params$s_1_ch4_01)
(
    challenge
    OR barrier
    OR obstacle
    OR hinder
    OR hindrance
    OR block
    OR prevent
    OR deter
    OR inertia
    OR "path dependence"
    OR "path dependency"
    OR stasis
    OR "lock-in"
    OR trap
    OR habits
    OR habitual
    OR "status quo"
    OR power
    OR "limiting factOR"
)
AND (
    economic inequality
    OR "Wealth concentration"
    OR "Socioeconomic inequality"
    OR financialization
    OR "uneven development"
    OR Financialization
    OR "Structural adjustment"
    OR "Sovereign Debt"
    OR inequality
    OR "Policy effectiveness"
)

02

Show the code
#|

cat(params$s_1_ch4_02)
(
    challenge
    OR barrier
    OR obstacle
    OR hinder
    OR hindrance
    OR block
    OR prevent
    OR deter
    OR inertia
    OR "path dependence"
    OR "path dependency"
    OR stasis
    OR "lock-in"
    OR trap
    OR habits
    OR habitual
    OR status quo
    OR power
    OR "limiting factor"
)
AND (
    "clean technology"
    OR "clean innovation*"
    OR "sustainable innovation"
    OR "sustainable technological innovation"
)
AND (
    "limited access"
    OR "limited availability"
    OR "lack of access"
    OR "unavailability"
)

Art

Show the code
#|

cat(params$st_art)
Painting OR
Sculpture OR
Photography OR
Drawing OR
Printmaking OR
Ceramics OR
Performance art OR
"Digital art" OR
Figurative OR
Contemporary OR
Gallery OR
Exhibition OR
"Art history" OR
"Fine arts" OR 
"Art critique" OR
Collage OR
"Street art" OR
Portraiture OR
Minimalism OR
Surrealism OR
Expressionism OR
"Art therapy" OR
"Art education" OR
"Public art" OR
"Art collecting" OR
"Art fairs" OR
"Modern art" OR
Renaissance
Baroque OR
Impressionism OR
Cubism OR
Realism OR
"Art movements" OR
"Conceptual art" OR
"Art funding" OR
"Art workshops" OR
"Art communities" OR
"Art criticism" OR
"Eco art" OR
"Folk art" OR
Muralism OR
"Art residence"

Media

Show the code
#|

cat(params$st_art)
Painting OR
Sculpture OR
Photography OR
Drawing OR
Printmaking OR
Ceramics OR
Performance art OR
"Digital art" OR
Figurative OR
Contemporary OR
Gallery OR
Exhibition OR
"Art history" OR
"Fine arts" OR 
"Art critique" OR
Collage OR
"Street art" OR
Portraiture OR
Minimalism OR
Surrealism OR
Expressionism OR
"Art therapy" OR
"Art education" OR
"Public art" OR
"Art collecting" OR
"Art fairs" OR
"Modern art" OR
Renaissance
Baroque OR
Impressionism OR
Cubism OR
Realism OR
"Art movements" OR
"Conceptual art" OR
"Art funding" OR
"Art workshops" OR
"Art communities" OR
"Art criticism" OR
"Eco art" OR
"Folk art" OR
Muralism OR
"Art residence"

Strategies and Options

In contrast to the other search term, this opne contains multiple sets of search terms

Show the code
#|

cat(params$sts_strategies_options)
# 1) Conserve and regenerate places of value to nature and people.   ## Conserve, manage and monitor "Forest conservation" OR "High sea conservation" OR "Marine protected area" OR MPA OR "Marine reserve" OR "Marine park" OR "Protected area" OR "Remedial action" OR "Forest Reserve" OR "private reserve" OR "nature reserve" OR "ecosystem reserve" OR "Transboundary protected area" OR "High seas conservation" OR "Marine resource areas" OR "marine waters" OR "marine managed area" OR "national park" OR "Agri-Environmental and Climate Measure" OR "Environmental Law" OR "Habitat Conservation Plan" OR "Invasive Species Regulation"  OR "National biodiversity strategy and action plan" OR NBSAP OR "Wild species protection" OR "Waste Management Regulation" OR "Coastal management" OR "Coastal waters management" OR "Integrated coastal zone management" OR "watershed management" OR "catchment management" OR "Integrated landscape management" OR "Invasive alien species management" OR "Marine and coastal governance" OR "Marine governance" OR "Coastal governance" OR "Ocean governance" OR "Sustainable wildlife management" OR "Sustainable use" OR "Transboundary water management" OR "environmental impact assessment" OR "forest monitoring" OR "environmental monitoring" OR "environmental remote sensing"  OR "marine monitoring" OR "fish monitoring" OR "species monitoring" OR "marine mammal monitoring" OR "coastal monitoring" OR "ocean monitoring" OR "ecosystem monitoring" OR "land monitoring" OR "Seasonal restriction" OR "Environmental Impact Assessment"  ## Right-based approaches "Access and benefit sharing" OR "community rights" OR "Free, prior and informed consent" OR FPIC OR "Human right" OR "Indigenous and local language" OR "Intellectual property right" OR "International Covenant on Civil and Political Right" OR "International Covenant on Economic, Social and Cultural Right" OR "International Human Right Treaty" OR "International Labour Organization Convention" OR "Right of nature" OR "right to water" OR UNDRIP OR "Universal Declaration of Human Right" OR "United Nations Declaration on the Right of Indigenous Peoples" OR "Legal empowerment" OR "individual transferable rights" OR "nature rights" OR "land tenure" OR "tenure right" OR "Food sovereignty"  ## Multiple values of nature "Convivial conservation" OR "Legal pluralism" OR "Biocultural conservation" OR "Co-management" OR "Community-based management" OR "Community-led conservation" OR "Community protocol" OR "Ecosystem-based approach" OR "sacred site" OR "sacred grove" OR "Indigenous-led conservation" OR "Indigenous co-governance" OR "Land sovereignty" OR "Tribal park" OR "Biosphere reserve" OR "recreation area" OR "Indigenous and Community Conserved Area" OR ICCA OR "Other Effective area-based Conservation Measure" OR OECM OR "Other effective Conservation Measure" OR "Bottom-up environmental initiative" OR "Citizen-led environmental initiative" OR "Community Garden" OR "Urban gardening" OR "Community-Led Conservation Initiative" OR "Community-based Renewable Energy Project" OR "Local Food Cooperative" OR "Farmers' Market" OR "Local action group" OR "Transition Town Movement" OR "Zero Waste Community" OR "sustainable consumption network" OR "community quota"   ## Spatial planning "Development Control Regulation" OR "GIS and Spatial Analysis Tool" OR "Infrastructure Planning" OR "Land Use Permit" OR "Land use planning" OR "Marine spatial planning" OR "ocean planning" OR "Maritime spatial planning" OR "Master Plan" OR "Multi-functional landscape" OR "Participatory Planning Approach" OR "Spatial planning" OR "Strategic Environmental Assessment" OR "Environmental Impact assessment" OR "Buffer zone" OR "land law" OR "coastal planning area"or   ## Regenerate "Ecosystem restoration" OR "Ecological restoration" OR "Connectivity restoration" OR "Biodiversity restoration" OR "Forest restoration" OR "Habitat restoration" OR Rewilding OR "Landscape restoration" OR "Regenerative agriculture" OR "Regenerative farming"  # 2) Drive systemic change in the sectors most responsible for biodiversity loss.   ## Regulate "Cap resource consumption" OR "conversion off-budget subsidies" OR "Corporate social responsibility" OR "Licensing and Permitting" OR "Limit on pollution" OR "Pollution Control Measure" OR "public procurement" OR "Regulation of Resource Extraction" OR "Regulatory measure" OR "Sustainable public procurement" OR "Wildlife trade regulation" OR "regulate consumption" OR "production standards" OR "cross-compliance" OR "by-catch regulation" OR "process regulation" OR "emission caps" OR "trade regulation" OR "land policy" OR "land regulation" OR "Large-scale land acquisition regulation" OR "Land Use Regulation" OR "Limit on habitat destruction" OR "Limit on resource extraction" OR "Logging regulation" OR "Natural resource use restriction" OR "Zoning Regulation" OR "territorial use-rights for fisheries" OR "consumption fee" OR "Tax on consumption"  ## Mainstream innovative economic tools "Biodiversity bond" OR "Biodiversity compensation policy" OR "Biodiversity offset" OR "Cap and Trade System" OR "cap and share" OR "carbon credit" OR "Commodity chain regulation" OR "Commodity future" OR "Compensation for environmental damage" OR "Corporate Social Responsibility" OR "cross-compliance incentive" OR "Derivative trading" OR "Ecological fiscal transfer" OR "Environmental-positive subsidy" OR "Environmental Tax" OR "Eco-entrepreneurship Support" OR "income transfer" OR "Mitigation for environmental damage" OR "Market-based financing mechanism" OR "Reducing Emission from Deforestation and Forest Degradation" OR "Reform environmental-harmful subsidy" OR "Restoration for environmental damage" OR "Socially responsible investment" OR "Subsidy Reform" OR "Tradable permit" OR "Trade ban" OR "True cost pricing" OR "zero deforestation" OR "no deforestation" OR "environmental  measures" OR "Agricultural environmental schemes" OR "green architecture" OR "Carbon Border Adjustment Mechanism" OR CBAM OR "payment for ecosystem services" OR REDD OR "carbon credits" OR "trade agreements" OR "water quality trading" OR "environmental impact bonds"   ## Supply chain governance and transparency "supply chain tracking" OR Certification OR "Collaborative supply chain initiative" OR "Consumer demand for transparency" OR "Corporate disclosure mandate"  OR "Eco Labeling" OR "Fair Trade Certification" OR "Forest Stewardship Council Certification" OR "green branding" OR Guideline OR "ISO Standard" OR Labeling OR "Mandatory reporting requirement" OR "Public procurement policy" OR Standard OR "Supplier code of conduct requirement" OR "Third-party auditing" OR "Third-party verification" OR "Whistleblower protection law" OR "LEED Certification" OR "Marine Stewardship Council Certification" OR "Non-GMO Project Verification" OR "Organic Certification" OR "Participatory Guarantee System" OR "Rainforest Alliance Certification" OR "UTZ Certification" OR "friends of the sea" OR "seafood watch" OR "Global sustainable seafood initiative" OR "International Sustainability Standards"  ## Sustainable production and consumption "Collaborative Consumption" OR "Dietary transition" OR "Food waste reduction" OR "frugal consumption" OR "green consumption" OR "Localized food system" OR "low-impact diet" OR "Normative feedback" OR "plant-based diet" OR "Responsible consumption" OR "reduce consumption" OR reuse OR recycle OR "shared consumption" OR "shared ownership" OR "Sustainable consumption" OR "Sustainable sourcing practice" OR Agroecology OR Agroforestry OR "Best practice in production" OR "Biological agriculture" OR "Carbon farming" OR "Climate-smart agriculture" OR Compost OR "Conservation tillage" OR "Crop diversification" OR "Crop rotation" OR "Holistic planned grazing" OR "Organic agriculture" OR "Reduced impact logging" OR "Responsible production" OR "Sustainable agricultural intensification" OR "Sustainable fishing practice" OR "Sustainable design" OR "Sustainable fishing" OR "Sustainable production" OR "Swidden agriculture" OR "sustainable land management" OR "sustainable aquaculture" OR "Sustainable Small-Scale Fisheries" OR "Guidelines on the Responsible Governance of Tenure of Land, Fisheries, and Forests" OR "Land and water stewardship" OR "responsible fisheries" OR "Collaborative Consumption" OR "Community-supported Agriculture"  ## Balance nature finance "Biodiversity finance" OR "Conservation finance" OR "Conservation funding" OR "Conservation philanthropy" OR "Conservation trust fund" OR "Debt-for-nature swap" OR "Direct funding to community" OR "Ecological finance" OR "Environmental finance" OR "Nature finance" OR "Public funding for conservation" OR "Public-private partnership" OR "climate finance" OR "ocean finance" OR "environmental harmful subsidies" OR "nature-dependent economic activities"  ## Environmental civil society initiatives "environmental mobilizations" OR "environmental defenders" OR "environmental action groups" OR "environmental social movements" OR "name and shame" OR commoning OR "Non-violent protest and persuasion" OR "Formal petitions" OR "public campaigns" OR "street protests" OR "collective action networks" OR "media-based activism" OR "Non-cooperation" OR Strikes OR boycotts OR "refusal of compensation payments" OR "environmental lawsuits" OR "objections to environmental impacts assessments" OR "road blockades" OR "land occupation" OR "hunger strikes" OR "Environmental defender protection"  ## Green infrastructure "Access to urban service" OR Biofilter OR Bioswale OR "Blue-green corridor" OR "Constructed wetland" OR "Energy efficient building" OR "Floodplain restoration" OR "Green infrastructure" OR "green logistics" OR "Green roof" OR "Green street" OR "Green wall" OR "Living shoreline" OR "Multi-purpose structure" OR "Permeable pavement" OR "Public transport" OR "Rain garden" OR "Riparian buffer" OR "Sustainable drainage system" OR "Sustainable infrastructure" OR "Urban agriculture space" OR "Urban forest" OR "Urban park" OR "Vegetated swale" OR "Water infrastructure" OR "nature-based solution"  ## Green technology Biofuel OR "Biomass energy production" OR "Biomimetic" OR "Climate-smart agriculture" OR "Coordinated transport" OR "Coordinated heating"  OR "energy sharing platform" OR "Fuel-efficient vehicle" OR "Geothermal energy" OR "Green building material" OR "Hybrid vehicle" OR "local currency" OR Minigrid OR microgrid OR "Replacement fertilizer" OR "Small renewable energy technology" OR "Smart meter" OR "Solar panel" OR "Solar photovoltaic system" OR "Wind turbine" OR "green technology"  # 3) Transform economic systems to address power inequities and extractivist activities  ## Change metrics of success "Doughnut planning" OR "Gross National Happiness" OR "Human Development Index" OR "Genuine Progress Indicator" OR "Index of Sustainable Economic Welfare" OR "Happy Planet Index" OR "Inclusive Wealth Index"  OR "Social Progress Index" OR "wellbeing budget" OR "Ecological Footprint" OR "inequality index"  ## Reform financial system "WTO reform" OR "World Trade Organization reform" OR "World Trade Organisation reform" OR "Central bank reform" OR "IMF reform" OR "International Monetary Fund reform" OR "financial reform" OR "sustainable finance" OR "nature finance" OR "biodiversity finance" OR "wealth tax" OR "regulate inequality" OR "regulate inequalities" OR "tax the one percent" OR "progressive taxation on wealth" OR "tobin tax" OR "reduce tax havens" OR "dismantle off-shore accounts" OR "reduce debt" OR "eliminate debt"  ## Alternative economic models "Alternative economic model" OR Bioeconomy OR "Circular economy" OR "circular bioeconomy" OR Commoning OR Degrowth OR "downscale production" OR "Ecosystem accounting" OR "Mainstreaming biodiversity" OR "Natural capital accounting" OR "Sharing economy" OR "Caring economy" OR "Steady state economy" OR "System of Environmental Economic Accounting" OR "nature positive economy" OR "Economics of Biodiversity" OR "Wellbeing Economics" OR "Doughnut Economics" OR "Life-Centered Economics" OR "real wealth of nations" OR "Business for Nature" OR "regenerative business" OR "regenerative capitalism" OR "ecological economics" OR "Natural Social Contract" OR "Alternative business model" OR "B-Corp" OR "B-Corporation" OR "Benefit Corporation" OR "Cradle-to-Cradle" OR "Employee-owned Business" OR "Fair Trade" OR "Open Source" OR "Platform Cooperative" OR "Subscription-based Model" OR "not-for-profit economy" OR "Accounting for nature" OR "nature-related financial disclosure" OR TNFD OR "Corporate Sustainability Reporting Directive" OR "nature-positive business" OR "relocalize economy"  # 4) Transform governance systems to be inclusive, accountable and adaptive.   ## Integrated decision making "institutional arrangement" OR "social capital" OR "environmental advocacy" OR "biodiversity advocacy" OR "Institutional entrepreneurship" OR "Institutional reform"  ## Inclusive governance "Access to information law"or "Citizen Science Initiative" OR "Community-based natural resource management" OR "Community Meeting" OR "Community-Based Participatory Research" OR "Deliberative Democracy Process" OR "Global action network" OR "Indigenous and local community participation" OR "Legal and Policy Framework for Participation" OR "Multi-stakeholder platform" OR "Online Platform" OR "Participation in international process" OR "Participatory restoration" OR "Participatory evaluation and learning" OR "Participatory Mapping and GIS" OR "Public Consultation and Hearing" OR "Public participation in environmental impact assessment" OR "Stakeholder engagement" OR "Bottom-up governance approach" OR "Gender-responsive governance" OR "Gender inclusive governance" OR "Public participation law"or "Public Participation and Access to Information Law" OR "Resource Management Law" OR "Environmental public interest litigation"  ## Multilateral action "Agenda 21" OR "Aichi Biodiversity Target" OR "Bilateral agreement" OR "Basel Convention" OR "Cartagena Protocol" OR "Convention on Biological Diversity" OR "Convention on Migratory Species" OR "CMS" OR "Convention on International Trade in Endangered Species of Wild Fauna and Flora" OR "BBNJ Agreement" OR "High Seas Treaty" OR "Agreement under the United Nations Convention on the Law of the Sea on the Conservation and Sustainable Use of Marine Biological Diversity of Areas beyond National Jurisdiction" OR "International Convention for the Prevention of Pollution from Ships" OR "MARPOL" OR "EU Green Deal" OR "Freshwater treaty" OR "Genetic resource agreement" OR "Global deal for nature" OR "Global trade system" OR "International agreement" OR "International Treaty on Plant Genetic Resources for Food and Agriculture" OR "Kyoto Protocol" OR "Minamata Convention" OR "Montreal Protocol" OR "Multilateral environmental agreement" OR "Nagoya Protocol" OR "Paris Agreement" OR "Rio Declaration" OR "Ramsar Convention" OR "Rotterdam Convention" OR "Shipping agreement" OR "Sustainable Development Goal" OR "SDGs" OR "Stockholm Convention" OR "United Nations Convention to Combat Desertification" OR "United Nations Framework Convention on Climate Change" OR "United Nations Convention on the Law of the sea" OR "United Nations Agreement of Straddling Fish Stocks and Highly Migratory Fish Stocks"  ## Adaptive governance "Adaptive management framework" OR "Citizen assembly" OR "Conflict resolution mechanism" OR "Deliberative democracy mechanism" OR "Deep democracy" OR "Local governance structure" OR "Open government initiative" OR "Participatory decision-making process" OR "Policy co-creation" OR "Policy co-design" OR "Policy monitoring" OR "Transparency and accountability mechanism" OR "Advocacy network" OR "adaptive governance" OR "informed governance" OR "accountable governance" OR "accountability" OR "planning, monitoring, evaluation and review" OR "monitoring, evaluation and learning" OR "reflexive governance" OR "Community-based monitoring"  ## Transparent governance "Address corruption" OR "Convention against Corruption" OR "Whistleblower protection law" OR "measures against corruption" OR "fight lobbies" OR "Anti-discrimination law" OR "Decentralization law" OR "Equitable access to justice" OR "Freedom of information law" OR "Judicial independence" OR "Ombudsman institution"   ## Customary governance "Community cooperation"  OR "Customary institution" OR "Customary law" OR "Customary norm" OR "Customary tenure" OR "IPLC governance"  OR "Indigenous jurisdiction" OR "Intergenerational knowledge transmission" OR "Resource stewardship"   # 5) Shift underlying societal norms, philosophies, and goals to align with the 2050 Biodiversity Vision and related global sustainability goals.  ## Inner change "Behavioral change" OR "Behavioral nudge"  OR "Consumption reduction" OR "Dietary transition" OR "Food waste reduction" OR "Normative feedback" OR "Nudging" OR "Belief system" OR "Biophilia" OR "Environmental Connection" OR "Ecological Connection" OR "Nature Connection" OR "Identity shift" OR "Inner transformation" OR "Personal meaning" OR "Personal transformation"   ## Shift social norms and discourses "Community bond" OR "Community solidarity" OR "Civic engagement initiative" OR "Community dialogue" OR "Cultural transformation" OR "Mass media campaign" OR "Regenerative culture" OR "Social media platform"  OR "Youth empowerment program" OR "Peer-to-peer communication" OR "environmental discourse" OR "environmental narrative" OR "environmental storyline" OR "environmental perspective" OR "green discourse" OR "green narrative" OR "green storyline" OR "green perspective" OR "Unitive narrative" OR "Cultural narrative" OR "Storytelling initiative" OR "Campaign on consumer goods" OR "Choice architecture"  ## Transformative learning "Environmental education" OR "Transformational learning" OR "Transformative learning" OR "environmental curriculum" OR "K-12" OR "Adult learning" OR "Social learning" OR "Solution space" OR "Transformation lab" OR "Imagination infrastructure" OR "Experiential teaching" OR "Experiential learning" OR "Indigenous education" OR "Unitive education" OR "Transformative learning spaces" OR "Awareness campaign" OR "Capacity building" OR "Capacity development" OR "Cultural exchange program" OR "Cultural revitalization" OR "Practical learning" OR "Inner capacity" OR "Inner development goal" OR "Sacred teaching"  ## Knowledge co-creation "Art-science collaboration" OR "Co-creation of knowledge" OR "co-production of knowledge" OR "knowledge coproduction" OR "Co-creative inquiry" OR "Collaborative knowledge production" OR "Collaborative research and learning" OR "Collective knowledge generation" OR "Breeding knowledge" OR "Joint knowledge development" OR "Jointly constructed knowledge" OR "Knowledge co-creation" OR "Knowledge co-design" OR "Participatory knowledge creation" OR "Multiple evidence-based approach" OR "Participatory research and development" OR "Weaving knowledge" OR "Interfaith collaboration" OR "Interfaith dialogue" OR "Co-Design"   ## Shifts in values "Connection to nature" OR "Continuity with ancestors" OR "Cultural preservation" OR "Cultural revitalization" OR "Environmental stewardship" OR "Ethical framework" OR "Human-nature connection"  OR "Spiritual connection" OR "Human-nature relation" OR "nature connectedness" OR "environment connectedness"or "Community health" OR "Cultural pluralism" OR "Eco-centrism" OR "Ecohealth" OR "Harmony with nature" OR "Holistic worldview" OR "Interconnectedness of all life forms" OR "Living in balance" OR "One health" OR "Planetary health" OR "planetary wellbeing" OR "intrinsic value of biodiversity" OR "biocultural diversity" OR "Unitive vision" OR "Water-energy-food nexus" OR "Holistic management" OR "Indigenous worldview" OR "Balanced relationship" OR "Caring for nature" OR "relationality" OR "relational values" OR "Respect for Diversity" OR "Stewardship" OR "intrinsic value" OR "utilitarian value" OR "plural value"   ## Network and collaboration "Boundary organization" OR "Change agent" OR "Collaborative initiative" OR "Community network" OR "Connector" OR "Facilitator" OR "Innovation broker" OR "Indigenous peoples' network" OR "Intermediary" OR "Multiplier" OR "Boundary spanner" OR "Knowledge network" OR "Learning network" OR "Middle actor" OR "Multi-stakeholder platform" OR "New collaborative setting" OR "Partnership network" OR "Policy network" OR "Respectful partnership" OR "Technology network" OR "Transition intermediary"

Chapter 5

Vision

Show the code
#|

cat(params$s_1_ch5_vision)

Case

Show the code
#|

cat(params$s_1_case)
"data driven" OR
observational OR
experimental OR
"real world" OR
"evidence based" OR
factual OR
quantitative OR
qualitative OR
findings OR
survey OR
fieldwork OR
documented OR
verifiable OR
practical OR
"scientifically tested" OR
"data collection" OR
"results oriented" OR
variable OR
inference OR
"empirical evidence" OR
comparative OR
replication OR
interpretative OR
behavioural OR
outcome OR
dataset OR
instance OR
case OR
sample OR
"example examination" OR
"illustrative example" OR
"subject study" OR
"specific study" OR
"prototype study" OR
"field study" OR
"exploratory study" OR
"diagnostic study" OR
"in depth study"

Vision & Case

Topics

OpenAlex assigns topics to each work in a hirarchical manner:

Please see here for more information and here for a complete list of all topics and their corresponding subfields, fields and domains.

Methods

Get and calculate Data from OpenAlex

These data is gathered from OpenAlex directly, not using the downloaded TCA Corpus. The data is used to assess the quality of the TCA Corpus.

Show the code
#|

fn <- file.path(".", "data", "tca_corpus", "search_term_hits.rds")
if (!file.exists(fn)) {
    s_t <- grep("s_1_", names(params), value = TRUE)
    search_term_hits <- parallel::mclapply(
        s_t,
        function(stn) {
            message("getting '", stn, "' ...")
            if (grepl("_f_", stn)) {
                search <- params[[stn]]()
            } else {
                search <- params[[stn]]
            }
            search <- compact(search)
            openalexR::oa_query(filter = list(title_and_abstract.search = search)) |>
                openalexR::oa_request(count_only = TRUE, verbose = TRUE) |>
                unlist()
        },
        mc.cores = params$mc.cores,
        mc.preschedule = FALSE
    ) |>
        do.call(what = cbind) |>
        t() |>
        as.data.frame() |>
        dplyr::mutate(page = NULL, per_page = NULL) |>
        dplyr::mutate(count = formatC(count, format = "f", big.mark = ",", digits = 0))

    rownames(search_term_hits) <- s_t |>
        gsub(pattern = "s_1_", replacement = "") |>
        gsub(pattern = "f_", replacement = "") |>
        gsub(pattern = "^ch", replacement = "Chapter ") |>
        gsub(pattern = "_", replacement = " ")

    saveRDS(search_term_hits, file = fn)
} else {
    search_term_hits <- readRDS(fn)
}
Show the code
#|

fn <- file.path(".", "data", "tca_corpus", "additional_search.rds")
if (!file.exists(fn)) {
    # oa
    st <- params$s_1_tca_corpus |>
        compact()

    count_all <- openalexR::oa_fetch(title_and_abstract.search = st, count_only = TRUE, verbose = TRUE, output = "list")$count

    # art
    st <- paste0("(", params$s_1_tca_corpus, ") AND (", params$st_art, ")") |>
        compact()
    count <- openalexR::oa_fetch(title_and_abstract.search = st, count_only = TRUE, verbose = TRUE, output = "list")$count

    result <- data.frame(
        Category = "Art",
        Count = count,
        Proportion = count / count_all,
        Timestamp = Sys.time()
    )

    # media
    st <- paste0("(", params$s_1_tca_corpus, ") AND (", params$st_media, ")") |>
        compact()

    count <- openalexR::oa_fetch(title_and_abstract.search = st, count_only = TRUE, verbose = TRUE, output = "list")$count

    result <- rbind(
        result,
        data.frame(
            Category = "Media",
            Count = count,
            Proportion = count / count_all,
            Timestamp = Sys.time()
        )
    )

    # imaginative
    st <- paste0("(", params$s_1_tca_corpus, ") AND (", params$st_imaginative, ")") |>
        compact()

    count <- openalexR::oa_fetch(title_and_abstract.search = st, count_only = TRUE, verbose = TRUE, output = "list")$count

    result <- rbind(
        result,
        data.frame(
            Category = "Imaginative",
            Count = count,
            Proportion = count / count_all,
            Timestamp = Sys.time()
        )
    )

    # Rights of Nature
    st <- paste0("(", params$s_1_tca_corpus, ") AND (", params$st_rights_of_nature, ")") |>
        compact()

    count <- openalexR::oa_fetch(title_and_abstract.search = st, count_only = TRUE, verbose = TRUE, output = "list")$count

    result <- rbind(
        result,
        data.frame(
            Category = "Rights of Nature",
            Count = count,
            Proportion = count / count_all,
            Timestamp = Sys.time()
        )
    )

    # Initiative
    st <- paste0("(", params$s_1_tca_corpus, ") AND (", params$st_initiative, ")") |>
        compact()

    count <- openalexR::oa_fetch(title_and_abstract.search = st, count_only = TRUE, verbose = TRUE, output = "list")$count

    result <- rbind(
        result,
        data.frame(
            Category = "Initiative",
            Count = count,
            Proportion = count / count_all,
            Timestamp = Sys.time()
        )
    )

    # save it
    saveRDS(result, file = fn)
}
Show the code
#|

fn <- file.path(".", "data", "tca_corpus", "key_papers.rds")
if (!file.exists(fn)) {
    key_papers <- lapply(
        params$key_papers,
        function(fn) {
            message("Processing '", fn, "' ...")
            sapply(
                fn,
                function(x) {
                    read.csv(x) |>
                        select(DOI)
                }
            ) |>
                unlist()
        }
    )
    names(key_papers) <- gsub("\\.csv", "", basename(params$key_papers))

    key_papers <- list(
        Ch_1 = unlist(key_papers[grepl("Ch 1 -", names(key_papers))], recursive = FALSE) |> as.vector(),
        Ch_2 = unlist(key_papers[grepl("Ch 2 -", names(key_papers))], recursive = FALSE) |> as.vector(),
        Ch_3_Cl_1 = unlist(key_papers[grepl("Ch 3 - Cl1", names(key_papers))], recursive = FALSE) |> as.vector(),
        Ch_3_Cl_3 = unlist(key_papers[grepl("Ch 3 - Cl3", names(key_papers))], recursive = FALSE) |> as.vector(),
        Ch_3_Cl_4 = unlist(key_papers[grepl("Ch 3 - Cl4", names(key_papers))], recursive = FALSE) |> as.vector(),
        Ch_3_Cl_5 = unlist(key_papers[grepl("Ch 3 - Cl5", names(key_papers))], recursive = FALSE) |> as.vector(),
        Ch_3_Cl_6 = unlist(key_papers[grepl("Ch 3 - Cl6", names(key_papers))], recursive = FALSE) |> as.vector(),
        Ch_3 = unlist(key_papers[grepl("Ch 3 - p", names(key_papers))], recursive = FALSE) |> as.vector(),
        Ch_4_Cl_1 = unlist(key_papers[grepl("Ch 4 - Challenge 1", names(key_papers))], recursive = FALSE) |> as.vector(),
        Ch_4_Cl_2 = unlist(key_papers[grepl("Ch 4 - Challenge 2", names(key_papers))], recursive = FALSE) |> as.vector(),
        Ch_4_Cl_3 = unlist(key_papers[grepl("Ch 4 - Challenge 3", names(key_papers))], recursive = FALSE) |> as.vector(),
        Ch_4_Cl_4 = unlist(key_papers[grepl("Ch 4 - Challenge 4", names(key_papers))], recursive = FALSE) |> as.vector(),
        Ch_4_Cl_5 = unlist(key_papers[grepl("Ch 4 - Challenge 5", names(key_papers))], recursive = FALSE) |> as.vector(),
        Ch_5 = unlist(key_papers[grepl("Ch 5 -", names(key_papers))], recursive = FALSE) |> as.vector()
    )

    saveRDS(key_papers, file = fn)
} else {
    key_papers <- readRDS(fn)
}
Show the code
#|

fn_kw <- file.path(".", "data", "tca_corpus", "key_works.rds")
fn_kw_df <- file.path(".", "data", "tca_corpus", "key_works_df.rds")
if (!all(file.exists(fn_kw, fn_kw_df))) {
    key_works <- parallel::mclapply(
        key_papers,
        function(kp) {
            dois <- kp[kp != ""] |>
                unlist() |>
                tolower() |>
                unique()

            openalexR::oa_fetch(doi = dois, output = "list")
        },
        mc.cores = params$mc.cores,
        mc.preschedule = FALSE
    )

    found <- sapply(
        key_works,
        function(x) {
            length(x) > 0
        }
    )

    key_works <- key_works[found]

    print("The following key paper sets were excluded as they contained no papers in OpenAlex:\n")
    print(names(found)[!found])

    saveRDS(key_works, file = fn_kw)

    key_works_df <- lapply(
        key_works,
        oa2df,
        entity = "works"
    )

    saveRDS(key_works_df, fn_kw_df)
} else {
    key_works <- readRDS(file = fn_kw)
    key_works_df <- readRDS(fn_kw_df)
}
Show the code
#|

fn <- file.path(".", "data", "tca_corpus", "key_works_hits.rds")
if (!file.exists(fn)) {
    kws <- key_works_df
    kws$all <- key_works_df |>
        bind_rows()

    nms <- names(kws)

    key_works_hits <- pbapply::pblapply(
        nms,
        function(nm) {
            message("Getting key paper set for ", nm, " ...")
            dois <- kws[[nm]] |>
                select(doi) |>
                distinct() |>
                unlist() |>
                unique() |>
                tolower()

            s_t <- grep("s_1_", names(params), value = TRUE)
            kw_h <- parallel::mclapply(
                s_t,
                function(stn) {
                    message("  getting '", stn, "' ...")
                    if (grepl("_f_", stn)) {
                        search <- compact(params[[stn]]())
                    } else {
                        search <- compact(params[[stn]])
                    }
                    get_count(dois = dois, list(title_and_abstract.search = search), verbose = FALSE)
                },
                mc.cores = params$mc.cores,
                mc.preschedule = FALSE
            ) |>
                do.call(what = cbind) |>
                as.data.frame()
            message("Done")

            names(kw_h) <- s_t

            # if (ncol(kw_h) == 1){
            #     kw_h <- t(kw_h)
            #     rownames(kw_h) <- dois
            # }

            kw_h <- rbind(
                kw_h,
                colSums(kw_h)
            )

            rownames(kw_h)[[nrow(kw_h)]] <- "Total"
            return(kw_h)
        }
    )

    names(key_works_hits) <- nms

    for (i in nms) {
        # key_works_hits[[i]] <- cbind(
        #     key_works_hits[[i]],
        #     key_works_hits_tca_filtered[[i]]
        # )

        key_works_hits[[i]] <- cbind(
            key_works_hits[[i]],
            Total = rowSums(key_works_hits[[i]])
        ) |>
            mutate(Total = Total - 1) # |>
        # relocate(tca_corpus_SDG, .after = s_1_tca_corpus)
    }

    ###

    saveRDS(key_works_hits, file = fn)
} else {
    key_works_hits <- readRDS(file = fn)
}

Works over Time

Get works over time for different search terms

Show the code
#|

fn <- file.path(".", "data", "tca_corpus", "oa_count.rds")
if (!file.exists(fn)) {
    oa_count <- list(
        timestamp = Sys.time()
    )
    #
    message("OpenAlex ...")
    oa_count$oa_years <- openalexR::oa_fetch(
        entity = "works",
        search = "",
        group_by = "publication_year",
        output = "dataframe",
        verbose = TRUE
    ) |>
        dplyr::mutate(
            publication_year = as.integer(as.character(key_display_name)),
            key = NULL,
            key_display_name = NULL,
            p = count / sum(count)
        ) |>
        dplyr::arrange(publication_year) |>
        dplyr::mutate(
            p_cum = cumsum(p)
        ) |>
        dplyr::select(
            publication_year,
            everything()
        )
    #
    message("NATURE ...")
    oa_count$tca_nature <- openalexR::oa_fetch(
        title_and_abstract.search = compact(paste0("(", params$s_1_nature_environment, ")")),
        group_by = "publication_year",
        output = "dataframe",
        verbose = TRUE
    ) |>
        dplyr::mutate(
            publication_year = as.integer(as.character(key_display_name)),
            key = NULL,
            key_display_name = NULL,
            p = count / sum(count)
        ) |>
        dplyr::arrange(publication_year) |>
        dplyr::mutate(
            p_cum = cumsum(p)
        ) |>
        dplyr::select(
            publication_year,
            everything()
        )
    #
    message("TransformatveChange ...")
    oa_count$transformative_change_years <- openalexR::oa_fetch(
        title_and_abstract.search = compact(paste0("(", params$s_1_transformative_change, ")")),
        group_by = "publication_year",
        output = "dataframe",
        verbose = TRUE
    ) |>
        dplyr::mutate(
            publication_year = as.integer(as.character(key_display_name)),
            key = NULL,
            key_display_name = NULL,
            p = count / sum(count)
        ) |>
        dplyr::arrange(publication_year) |>
        dplyr::mutate(
            p_cum = cumsum(p)
        ) |>
        dplyr::select(
            publication_year,
            everything()
        )
    #
    message("TCA ...")
    oa_count$tca_years <- openalexR::oa_fetch(
        title_and_abstract.search = compact(paste0("(", params$s_1_tca_corpus, ")")),
        group_by = "publication_year",
        output = "dataframe",
        verbose = TRUE
    ) |>
        dplyr::mutate(
            publication_year = as.integer(as.character(key_display_name)),
            key = NULL,
            key_display_name = NULL,
            p = count / sum(count)
        ) |>
        dplyr::arrange(publication_year) |>
        dplyr::mutate(
            p_cum = cumsum(p)
        ) |>
        dplyr::select(
            publication_year,
            everything()
        )
    #
    message("CASE ...")
    oa_count$case_years <- openalexR::oa_fetch(
        title_and_abstract.search = compact(paste0("(", params$s_1_case, ")")),
        group_by = "publication_year",
        output = "dataframe",
        verbose = TRUE
    ) |>
        dplyr::mutate(
            publication_year = as.integer(as.character(key_display_name)),
            key = NULL,
            key_display_name = NULL,
            p = count / sum(count)
        ) |>
        dplyr::arrange(publication_year) |>
        dplyr::mutate(
            p_cum = cumsum(p)
        ) |>
        dplyr::select(
            publication_year,
            everything()
        )
    #
    message("TCA AND CASE ...")
    oa_count$tca_case_years <- openalexR::oa_fetch(
        title_and_abstract.search = compact(paste0("(", params$s_1_tca_corpus, ") AND (", params$s_1_case, ")")),
        group_by = "publication_year",
        output = "dataframe",
        verbose = TRUE
    ) |>
        dplyr::mutate(
            publication_year = as.integer(as.character(key_display_name)),
            key = NULL,
            key_display_name = NULL,
            p = count / sum(count)
        ) |>
        dplyr::arrange(publication_year) |>
        dplyr::mutate(
            p_cum = cumsum(p)
        ) |>
        dplyr::select(
            publication_year,
            everything()
        )
    saveRDS(oa_count, file = fn)
}

Download TCA Corpus

The corpus download will be stored in data/pages and the arrow database in data/corpus.

This is not on github!

The corpus can be read by running get_corpus() which o[pens the database so that then it can be fed into a dplyr pipeline. After most dplyr functions, the actual data needs to be collected via collect().

Only then is the actual data read!

Needs to be enabled by setting eval: true in the code block below.

Show the code
#|

tic()

IPBES.R::corpus_download(
    pages_dir = params$pages_dir,
    title_and_abstract_search = compact(params$s_1_tca_corpus),
    continue = TRUE,
    delete_pages_dir = FALSE,
    set_size = 2000,
    dry_run = FALSE,
    verbose = TRUE,
    mc_cores = 6
)

toc()
Show the code
tic()

IPBES.R::corpus_pages_to_arrow(
    pages_dir = params$pages_dir,
    arrow_dir = params$corpus_dir,
    continue = TRUE,
    delete_arrow_dir = FALSE,
    dry_run = FALSE,
    verbose = TRUE,
    mc_cores = 2
)

toc()
Show the code
#|

years <- IPBES.R::corpus_read(params$corpus_dir) |>
    distinct(publication_year) |>
    collect() |>
    unlist() |>
    as.vector() |>
    sort()

lapply(
    years,
    function(y) {
        message("\nProcessing year: ", y)
        tic()
        dataset <- IPBES.R::corpus_read(params$corpus_dir) |>
            dplyr::filter(publication_year == y) |>
            dplyr::collect() |>
            group_by(id) |>
            slice_max(
                publication_year,
                n = 1,
                with_ties = FALSE,
                na_rm = TRUE
            )
        unlink(
            file.path(params$corpus_dir, paste0("publication_year=", y)),
            recursive = TRUE,
            force = TRUE
        )
        arrow::write_dataset(
            dataset = dataset,
            path = params$corpus_dir,
            partitioning = c("publication_year", "set"),
            format = "parquet",
            existing_data_behavior = "overwrite"
        )
        toc()
    }
)

Download TCA AND CASE Corpus

Show the code
#|

tic()

IPBES.R::corpus_download(
    pages_dir = params$pages_cases_dir,
    title_and_abstract_search = compact(paste(params$s_1_tca_corpus, " AND (", params$s_1_case, ")")),
    continue = TRUE,
    delete_pages_dir = FALSE,
    set_size = 2000,
    dry_run = TRUE,
    verbose = TRUE,
    mc_cores = 6
)

toc()
Show the code
tic()

IPBES.R::corpus_pages_to_arrow(
    pages_dir = params$pages_cases_dir,
    arrow_dir = params$corpus_cases_dir,
    continue = TRUE,
    delete_arrow_dir = FALSE,
    dry_run = FALSE,
    verbose = TRUE,
    mc_cores = 2
)

toc()
Show the code
#|

years <- IPBES.R::corpus_read(params$corpus_cases_dir) |>
    distinct(publication_year) |>
    collect() |>
    unlist() |>
    as.vector() |>
    sort()

lapply(
    years,
    function(y) {
        message("\nProcessing year: ", y)
        tic()
        dataset <- IPBES.R::corpus_read(params$corpus_cases_dir) |>
            dplyr::filter(publication_year == y) |>
            dplyr::collect() |>
            group_by(id) |>
            slice_max(
                publication_year,
                n = 1,
                with_ties = FALSE,
                na_rm = TRUE
            )
        unlink(
            file.path(params$corpus_cases_dir, paste0("publication_year=", y)),
            recursive = TRUE,
            force = TRUE
        )
        arrow::write_dataset(
            dataset = dataset,
            path = params$corpus_cases_dir,
            partitioning = c("publication_year", "set"),
            format = "parquet",
            existing_data_behavior = "overwrite"
        )
        toc()
    }
)

Prepare Full Text search of Title and Abstract

This is done using duckDB and the fts extension which is a full text search extension for duckDB (see also for details and for arrow / parquet support).

The following steps are conducted:

  1. Create new duckDB called tca_corpus.duckdb
    • import data needed
    • create fts index for full text search
Show the code
if (!file.exists(params$duckdb_fn)) {
    sql <- paste0(
        "CREATE TABLE tca_corpus AS SELECT id, author_abbr, publication_year, doi, display_name, ab FROM parquet_scan('",
        file.path(".", "data", "tca_corpus", "corpus", "**", "*.parquet"),
        "')"
    )

    con <- duckdb::dbConnect(duckdb::duckdb(), dbdir = params$duckdb_fn, read_only = FALSE)
    #
    dbExecute(con, "SET autoinstall_known_extensions=1")
    dbExecute(con, "SET autoload_known_extensions=1")
    dbExecute(con, sql)
    #
    duckdb::dbDisconnect(con, shutdown = TRUE)

    con <- duckdb::dbConnect(duckdb::duckdb(), dbdir = params$duckdb_fn, read_only = FALSE)
    #
    dbExecute(con, "INSTALL fts")
    dbExecute(con, "LOAD fts")

    input_table <- "tca_corpus"
    input_id <- "id"
    input_values <- "'display_name', 'ab'"

    sql <- paste0("PRAGMA create_fts_index(", input_table, ", ", input_id, ", ", input_values, ", overwrite=1);")

    dbExecute(con, sql)
    #
    duckdb::dbDisconnect(con, shutdown = TRUE)
}

# con <- dbConnect(duckdb::duckdb(params$duckdb_fn))

# SQL <- "SELECT * FROM tca_corpus WHERE display_name MATCH 'transformative';"
# dbListTables(con)

#     input_table <- "tca_corpus"
#     input_id <- "id"
#     input_values <- "'display_name', 'ab'"

#     query_string <- "'case study'"
#     fields <- "'display_name', 'ab'"

# sql <- paste0("SELECT fts_main_tca_corpus.match_bm25(", input_id, ", ", query_string, ", fields = ", fields, " FROM tca_corpus)"

# dbExecute(con, sql)

# duckdb::dbDisconnect(con, shutdown = TRUE)

Extract Data from Global Corpus

Export Random Works from TCA Cases Corpus

Show the code
#|

sample_size <- 250

fn <- file.path("data", "tca_corpus", paste0("random_", sample_size, "_tca_cases_corpus.xlsx"))
if (!file.exists(fn)) {
    set.seed(13)
    read_corpus(params$corpus_cases_dir) |>
        dplyr::select(
            id,
            doi,
            author = author_abbr,
            title = display_name,
            abstract = ab
        ) |>
        dplyr::slice_sample(
            n = sample_size
        ) |>
        dplyr::mutate(
            abstract = substr(abstract, 1, 5000)
        ) |>
        dplyr::collect() |>
        writexl::write_xlsx(path = fn)
}

Sectors

The Sectors definition is based on the subfields assigned to each work by OpenAlex. These were grouped by experts into sectors. See this Google Doc for details.

Show the code
#|

if (!dir.exists(params$corpus_topics_dir)) {
    con <- duckdb::dbConnect(duckdb::duckdb(), read_only = FALSE)

    corpus_read(params$corpus_dir) |>
        arrow::to_duckdb(table_name = "corpus", con = con) |>
        invisible()
    corpus_read(file.path("input", "tca_corpus", "sectors_def.parquet")) |>
        arrow::to_duckdb(table_name = "sectors", con = con) |>
        invisible()

    paste0(
        "CREATE VIEW corpus_unnest AS ",
        "SELECT  ",
        "corpus.id AS work_id,  ",
        "corpus.publication_year AS publication_year,  ",
        "UNNEST(topics).i AS i,  ",
        "UNNEST(topics).score AS score,  ",
        "UNNEST(topics).name AS name, ",
        "UNNEST(topics).id AS id,  ",
        "UNNEST(topics).display_name AS display_name  ",
        "FROM  ",
        "corpus "
    ) |>
        dbExecute(conn = con)

    select_sql <- paste0(
        "SELECT ",
        "corpus_unnest.*, ",
        "sectors.sector ",
        "FROM ",
        "corpus_unnest ",
        "LEFT JOIN ",
        "sectors ",
        "ON ",
        "corpus_unnest.id  == sectors.id "
    )

    dbGetQuery(con, paste(select_sql, "LIMIT 10"))

    sql <- paste0(
        "COPY ( ",
        select_sql,
        ") TO '", params$corpus_topics_dir, "' ",
        "(FORMAT PARQUET, COMPRESSION 'SNAPPY', PARTITION_BY 'publication_year')"
    )

    dbExecute(con, sql)

    duckdb::dbDisconnect(con, shutdown = TRUE)

    ###########################

    # years <- IPBES.R::corpus_read(params$corpus_dir) |>
    #     distinct(publication_year) |>
    #     collect() |>
    #     unlist() |>
    #     as.vector() |>
    #     sort()

    # sectors <- read.csv(file.path("input", "tca_corpus", "sectors_def.csv")) |>
    #     tibble::as_tibble() |>
    #     dplyr::mutate(
    #         id = paste0("https://openalex.org/subfields/", id),
    #         display_name = NULL
    #     )

    # pbmcapply::pbmclapply(
    #     years,
    #     function(y) {
    #         message("\nProcessing year: ", y)
    #         IPBES.R::corpus_read(params$corpus_dir) |>
    #             dplyr::filter(publication_year == y) |>
    #             dplyr::select(
    #                 id,
    #                 publication_year,
    #                 topics
    #             ) |>
    #             collect() |>
    #             IPBES.R::extract_topics(
    #                 names = "subfield"
    #             ) |>
    #             dplyr::left_join(
    #                 y = sectors,
    #                 by = "id"
    #             ) |>
    #             arrow::write_dataset(
    #                 path = params$corpus_topics_dir,
    #                 partitioning = c("publication_year"),
    #                 format = "parquet",
    #                 existing_data_behavior = "overwrite"
    #             )
    #     },
    #     mc.cores = 3,
    #     mc.preschedule = FALSE
    # )
}

Authors

Show the code
#|

if (!dir.exists(params$corpus_authors_dir)) {
    con <- duckdb::dbConnect(duckdb::duckdb(), read_only = FALSE)

    corpus_read(params$corpus_dir) |>
        arrow::to_duckdb(table_name = "corpus", con = con) |>
        invisible()

    paste0(
        "CREATE VIEW corpus_unnest AS ",
        "SELECT  ",
        "corpus.id AS work_id,  ",
        "corpus.publication_year AS publication_year,  ",
        "UNNEST(author).au_id AS au_id,  ",
        "UNNEST(author).au_display_name AS au_display_name, ",
        "UNNEST(author).au_orcid AS au_orcid,  ",
        "UNNEST(author).author_position AS author_position,  ",
        "UNNEST(author).is_corresponding AS is_corresponding,  ",
        "UNNEST(author).au_affiliation_raw AS au_affiliation_raw,  ",
        "UNNEST(author).institution_id AS institution_id,  ",
        "UNNEST(author).institution_display_name AS institution_display_name,  ",
        "UNNEST(author).institution_ror AS institution_ror,  ",
        "UNNEST(author).institution_country_code AS institution_country_code,  ",
        "UNNEST(author).institution_type AS institution_type,  ",
        "UNNEST(author).institution_lineage AS institution_lineage  ",
        "FROM  ",
        "corpus "
    ) |> dbExecute(conn = con)

    paste0(
        "COPY ( ",
        "SELECT * FROM corpus_unnest ",
        ") TO '", params$corpus_authors_dir, "' ",
        "(FORMAT PARQUET, COMPRESSION 'SNAPPY', PARTITION_BY 'publication_year')"
    ) |>
        dbExecute(conn = con)

    duckdb::dbDisconnect(con, shutdown = TRUE)
}

Primary Topics

Show the code
fn <- file.path(".", "data", "tca_corpus", paste0("prim_topics_tca_corpus.rds"))
if (!file.exists(fn)) {
    prim_topics_tca_corpus <- corpus_read(params$corpus_topics_dir) |>
        dplyr::filter(
            name == "topic",
            i == 1
        ) |>
        mutate(
            id = as.integer(sub("https://openalex.org/T", "", id))
        ) |>
        dplyr::group_by(id) |>
        summarize(
            count = n()
        ) |>
        dplyr::left_join(
            read.csv(file.path("input", "tca_corpus", "OpenAlex_topic_mapping_table - final_topic_field_subfield_table.csv")),
            by = c("id" = "topic_id")
        ) |>
        dplyr::arrange(desc(count)) |>
        collect()

    saveRDS(prim_topics_tca_corpus, file = fn)
} else {
    prim_topics_tca_corpus <- readRDS(fn)
}

Figures

Show the code
#|

fn <- file.path(".", "data", "tca_corpus", "publications_over_time_tca_corpus.rds")

if (!file.exists(fn)) {
    read_corpus(params$corpus_dir) |>
        dplyr::select(publication_year) |>
        dplyr::arrange(publication_year) |>
        dplyr::collect() |>
        table() |>
        as.data.frame() |>
        mutate(
            publication_year = as.integer(as.character(publication_year)),
            p = Freq / sum(Freq),
            p_cum = cumsum(p)
        ) |>
        rename(
            count = Freq
        ) |>
        dplyr::inner_join(
            y = openalexR::oa_fetch(
                search = "",
                group_by = "publication_year",
                output = "tibble",
                verbose = FALSE
            ) |>
                dplyr::select(
                    key,
                    count
                ) |>
                dplyr::rename(
                    publication_year = key,
                    count_oa = count
                ) |>
                dplyr::arrange(publication_year) |>
                dplyr::mutate(
                    publication_year = as.integer(as.character(publication_year)),
                    p_oa = count_oa / sum(count_oa),
                    p_oa_cum = cumsum(p_oa)
                )
        ) |>
        saveRDS(file = fn)
}
Show the code
#|

if (length(list.files(file.path("figures", "tca_corpus"), pattern = "publications_over_time")) < 2) {
    figure <- readRDS(file.path(".", "data", "tca_corpus", "publications_over_time_tca_corpus.rds")) |>
        dplyr::filter(publication_year >= 1900) |>
        ggplot() +
        geom_bar(aes(x = publication_year, y = p), stat = "identity") +
        geom_line(aes(x = publication_year, y = p_cum / 10), color = "red") +
        geom_line(aes(x = publication_year, y = p_oa_cum / 10), color = "blue") +
        scale_x_continuous(breaks = seq(1900, 2020, 10)) +
        scale_y_continuous(
            "Proportion of publications",
            sec.axis = sec_axis(~ . * 10, name = "Cumulative proportion") # divide by 100 to scale back the secondary axis
        ) +
        labs(
            title = "Publications over time",
            x = "Year",
            y = "Number of publications"
        ) +
        theme_minimal() +
        theme(axis.text.y.right = element_text(color = "red"))

    ggplot2::ggsave(
        file.path("figures", "tca_corpus", "publications_over_time.pdf"),
        width = 12,
        height = 6,
        figure
    )
    ggplot2::ggsave(
        file.path("figures", "tca_corpus", "publications_over_time.png"),
        width = 12,
        height = 6,
        figure
    )

    rm(figure)
}

Maps

Show the code
#|

fn <- file.path(".", "data", "tca_corpus", "countries_tca_corpus.rds")
if (!file.exists(fn)) {
    corpus <- corpus_read(params$corpus_authors_dir)

    data_first <- corpus |>
        dplyr::filter(
            author_position == "first"
        ) |>
        dplyr::select(
            work_id,
            institution_country_code,
        ) |>
        dplyr::group_by(
            work_id,
            institution_country_code
        ) |>
        dplyr::summarise(
            count_first = 1 / n(),
            .groups = "drop"
        ) |>
        dplyr::group_by(
            institution_country_code
        ) |>
        dplyr::summarise(
            count = sum(count_first),
            .groups = "drop"
        ) |>
        dplyr::mutate(
            position = "first"
        )

    data_all <- corpus |>
        dplyr::select(
            work_id,
        ) |>
        dplyr::group_by(
            work_id,
        ) |>
        dplyr::summarize(
            count = n()
        ) |>
        dplyr::right_join(
            y = corpus |>
                dplyr::select(
                    work_id,
                    institution_country_code
                ),
            by = "work_id"
        ) |>
        dplyr::group_by(
            institution_country_code
        ) |>
        dplyr::summarise(
            count = sum(count),
            .groups = "drop"
        ) |>
        dplyr::mutate(
            position = "all"
        )

    data_oa <- openalexR::oa_fetch(
        group_by = "authorships.countries",
        output = "tibble",
        verbose = FALSE
    ) |>
        dplyr::mutate(
            iso3c = countrycode::countrycode(
                key_display_name,
                origin = "country.name",
                destination = "iso3c"
            ),
            key_display_name = NULL,
            key = NULL,
            position = "oa"
        )

    data <- dplyr::add_row(
        collect(data_first),
        collect(data_all)
    ) |>
        dplyr::mutate(
            iso3c = countrycode::countrycode(
                institution_country_code,
                origin = "iso2c",
                destination = "iso3c"
            ),
            institution_country_code = NULL
        ) |>
        dplyr::add_row(
            data_oa
        ) |>
        saveRDS(file = fn)
    rm(data_first, data_all, data_oa)
}

Some check of the data

Show the code
#|

if (length(list.files(path = file.path("maps", "tca_corpus"), pattern = "publications_countries")) < 2) {
    data <- readRDS(file.path(".", "data", "tca_corpus", "countries_tca_corpus.rds")) |>
        dplyr::group_by(iso3c) |>
        dplyr::summarize(
            count_first = sum(count[position == "first"], na.rm = TRUE),
            count_all = sum(count[position == "all"], na.rm = TRUE),
            count_oa = sum(count[position == "oa"], na.rm = TRUE)
        ) |>
        dplyr::mutate(
            count_oa = ifelse(is.na(count_oa), 0, count_oa),
            log_count_oa = log(count_oa + 1),
            p_oa = count_oa / sum(count_oa),
            #
            count_first = ifelse(is.na(count_first), 0, count_first),
            log_count_first = log(count_first + 1),
            p_first = count_first / sum(count_first),
            p_first_output = count_first / count_oa,
            p_first_diff = (p_oa - p_first) * 100,
            #
            count_all = ifelse(is.na(count_all), 0, count_all),
            log_count_all = log(count_all + 1),
            p_all = count_all / sum(count_all),
            p_all_output = count_all / count_oa,
            p_all_diff = (p_oa - p_all) * 100,
        )

    # data |> mutate(
    #     count_first = count_first / max(count_first),
    #     count_all = count_all / max(count_all),
    #     count_oa = count_oa / max(count_oa)
    # ) |>
    # dplyr::arrange(desc(count_oa)) |>
    # ggplot(aes(x = iso3c)) +
    #     geom_line(aes(y = count_first, color = "Count First"), group = 1) +
    #     geom_line(aes(y = count_all, color = "Count All"), group = 1) +
    #     geom_line(aes(y = count_oa, color = "Count OA"), group = 1) +
    #     scale_color_manual(values = c("Count First" = "red", "Count All" = "blue", "Count OA" = "green")) +
    #     labs(x = "ISO3C", y = "Normalized Count") +
    #     theme_minimal()

    map <- patchwork::wrap_plots(
        data |>
            IPBES.R::map_country_codes(
                map_type = "countries",
                values = "count_oa",
                geodata_path = params$gdm_dir
            ) +
            ggplot2::scale_fill_gradient2(low = "#E69F00", high = "#56B4E9") +
            ggplot2::ggtitle("count of overall publications (count_oa)"),
        #
        data |>
            IPBES.R::map_country_codes(
                map_type = "countries",
                values = "count_first",
                geodata_path = params$gdm_dir
            ) +
            ggplot2::scale_fill_gradient2(low = "#E69F00", high = "#56B4E9") +
            ggplot2::ggtitle("count of TCA publications (count_first)"),
        #
        data |>
            IPBES.R::map_country_codes(
                map_type = "countries",
                values = "count_all",
                geodata_path = params$gdm_dir
            ) +
            ggplot2::scale_fill_gradient2(low = "#E69F00", high = "#56B4E9") +
            ggplot2::ggtitle("count of TCA publications (count_all)"),
        ####
        data |>
            IPBES.R::map_country_codes(
                map_type = "countries",
                values = "log_count_oa",
                geodata_path = params$gdm_dir
            ) +
            ggplot2::scale_fill_gradient2(low = "#E69F00", high = "#56B4E9") +
            ggplot2::ggtitle("log(count + 1) of overall publications (log_count_oa)"),
        #
        data |>
            IPBES.R::map_country_codes(
                map_type = "countries",
                values = "log_count_first",
                geodata_path = params$gdm_dir
            ) +
            ggplot2::scale_fill_gradient2(low = "#E69F00", high = "#56B4E9") +
            ggplot2::ggtitle("log(count + 1) of TCA publications (log_count_first)"),
        #
        data |>
            IPBES.R::map_country_codes(
                map_type = "countries",
                values = "log_count_all",
                geodata_path = params$gdm_dir
            ) +
            ggplot2::scale_fill_gradient2(low = "#E69F00", high = "#56B4E9") +
            ggplot2::ggtitle("log(count + 1) of TCA publications (log_count_all)"),
        ####
        data |>
            IPBES.R::map_country_codes(
                map_type = "countries",
                values = "p_oa",
                geodata_path = params$gdm_dir
            ) +
            ggplot2::scale_fill_gradient2(low = "#E69F00", high = "#56B4E9") +
            ggplot2::ggtitle("Overall research output (p_oa)"),
        #
        data |>
            IPBES.R::map_country_codes(
                map_type = "countries",
                values = "p_first",
                geodata_path = params$gdm_dir
            ) +
            ggplot2::scale_fill_gradient2(low = "#E69F00", high = "#56B4E9") +
            ggplot2::ggtitle("TCA research output (p_first)"),
        #
        data |>
            IPBES.R::map_country_codes(
                map_type = "countries",
                values = "p_all",
                geodata_path = params$gdm_dir
            ) +
            ggplot2::scale_fill_gradient2(low = "#E69F00", high = "#56B4E9") +
            ggplot2::ggtitle("TCA research output (p_all)"),
        ####
        ggplot() +
            theme_void(),
        data |>
            IPBES.R::map_country_codes(
                map_type = "countries",
                values = "p_first_diff",
                geodata_path = params$gdm_dir
            ) +
            ggplot2::scale_fill_gradient2(low = "#E69F00", mid = "white", high = "#56B4E9", midpoint = 0) +
            ggplot2::ggtitle("difference (TCA - overall) output (p_oa - p_first)"),
        #
        data |>
            IPBES.R::map_country_codes(
                map_type = "countries",
                values = "p_all_diff",
                geodata_path = params$gdm_dir
            ) +
            ggplot2::scale_fill_gradient2(low = "#E69F00", mid = "white", high = "#56B4E9", midpoint = 0) +
            ggplot2::ggtitle("difference (TCA - overall) output (p_oa - p_all)"),
        ncol = 3
    )

    ggplot2::ggsave(
        file.path("maps", "tca_corpus", "publications_countries.pdf"),
        width = 12,
        height = 8,
        map
    )
    ggplot2::ggsave(
        file.path("maps", "tca_corpus", "publications_countries.png"),
        width = 12,
        height = 8,
        map
    )
}
Show the code
if (length(list.files(path = file.path("maps", "tca_corpus"), pattern = "publications_countries_before_2016")) < 2) {
    data <- readRDS(file.path(".", "data", "tca_corpus", "countries_tca_corpus.rds")) |>
        dplyr::filter(
            publication_year < 2016
        ) |>
        dplyr::group_by(iso3c) |>
        dplyr::summarize(
            count_first = sum(as.integer(count_first), na.rm = TRUE),
            count_all = sum(as.integer(count_all), na.rm = TRUE),
            count_oa = sum(as.integer(count_oa), na.rm = TRUE),
        ) |>
        dplyr::mutate(
            count_oa = ifelse(is.na(count_oa), 0, count_oa),
            log_count_oa = log(count_oa + 1),
            p_oa = count_oa / sum(count_oa),
            #
            count_first = ifelse(is.na(count_first), 0, count_first),
            log_count_first = log(count_first + 1),
            p_first = count_first / sum(count_first),
            p_first_output = count_first / count_oa,
            p_first_diff = (p_oa - p_first) * 100,
            #
            count_all = ifelse(is.na(count_all), 0, count_all),
            log_count_all = log(count_all + 1),
            p_all = count_all / sum(count_all),
            p_all_output = count_all / count_oa,
            p_all_diff = (p_oa - p_all) * 100,
        )

    map <- patchwork::wrap_plots(
        data |>
            IPBES.R::map_country_codes(
                map_type = "countries",
                values = "count_oa",
                geodata_path = params$gdm_dir
            ) +
            ggplot2::scale_fill_gradient2(low = "#E69F00", high = "#56B4E9") +
            ggplot2::ggtitle("count of overall publications (count_oa)"),
        #
        data |>
            IPBES.R::map_country_codes(
                map_type = "countries",
                values = "count_first",
                geodata_path = params$gdm_dir
            ) +
            ggplot2::scale_fill_gradient2(low = "#E69F00", high = "#56B4E9") +
            ggplot2::ggtitle("count of TCA publications (count_first)"),
        #
        data |>
            IPBES.R::map_country_codes(
                map_type = "countries",
                values = "count_all",
                geodata_path = params$gdm_dir
            ) +
            ggplot2::scale_fill_gradient2(low = "#E69F00", high = "#56B4E9") +
            ggplot2::ggtitle("count of TCA publications (count_all)"),
        ####
        data |>
            IPBES.R::map_country_codes(
                map_type = "countries",
                values = "log_count_oa",
                geodata_path = params$gdm_dir
            ) +
            ggplot2::scale_fill_gradient2(low = "#E69F00", high = "#56B4E9") +
            ggplot2::ggtitle("log(count + 1) of overall publications (log_count_oa)"),
        #
        data |>
            IPBES.R::map_country_codes(
                map_type = "countries",
                values = "log_count_first",
                geodata_path = params$gdm_dir
            ) +
            ggplot2::scale_fill_gradient2(low = "#E69F00", high = "#56B4E9") +
            ggplot2::ggtitle("log(count + 1) of TCA publications (log_count_first)"),
        #
        data |>
            IPBES.R::map_country_codes(
                map_type = "countries",
                values = "log_count_all",
                geodata_path = params$gdm_dir
            ) +
            ggplot2::scale_fill_gradient2(low = "#E69F00", high = "#56B4E9") +
            ggplot2::ggtitle("log(count + 1) of TCA publications (log_count_all)"),
        ####
        data |>
            IPBES.R::map_country_codes(
                map_type = "countries",
                values = "p_oa",
                geodata_path = params$gdm_dir
            ) +
            ggplot2::scale_fill_gradient2(low = "#E69F00", high = "#56B4E9") +
            ggplot2::ggtitle("Overall research output (p_oa)"),
        #
        data |>
            IPBES.R::map_country_codes(
                map_type = "countries",
                values = "p_first",
                geodata_path = params$gdm_dir
            ) +
            ggplot2::scale_fill_gradient2(low = "#E69F00", high = "#56B4E9") +
            ggplot2::ggtitle("TCA research output (p_first)"),
        #
        data |>
            IPBES.R::map_country_codes(
                map_type = "countries",
                values = "p_all",
                geodata_path = params$gdm_dir
            ) +
            ggplot2::scale_fill_gradient2(low = "#E69F00", high = "#56B4E9") +
            ggplot2::ggtitle("TCA research output (p_all)"),
        ####
        ggplot() +
            theme_void(),
        data |>
            IPBES.R::map_country_codes(
                map_type = "countries",
                values = "p_first_diff",
                geodata_path = params$gdm_dir
            ) +
            ggplot2::scale_fill_gradient2(low = "#E69F00", mid = "white", high = "#56B4E9", midpoint = 0) +
            ggplot2::ggtitle("difference (TCA - overall) output (p_oa - p_first)"),
        #
        data |>
            IPBES.R::map_country_codes(
                map_type = "countries",
                values = "p_all_diff",
                geodata_path = params$gdm_dir
            ) +
            ggplot2::scale_fill_gradient2(low = "#E69F00", mid = "white", high = "#56B4E9", midpoint = 0) +
            ggplot2::ggtitle("difference (TCA - overall) output (p_oa - p_all)"),
        ncol = 3
    )

    ggplot2::ggsave(
        file.path("maps", "tca_corpus", "publications_countries_before_2016.pdf"),
        width = 12,
        height = 8,
        map
    )
    ggplot2::ggsave(
        file.path("maps", "tca_corpus", "publications_countries_before_2016.png"),
        width = 12,
        height = 8,
        map
    )
}
Show the code
if (length(list.files(path = file.path("maps", "tca_corpus"), pattern = "publications_countries_after_2019")) < 2) {
    data <- readRDS(file.path(".", "data", "tca_corpus", "countries_tca_corpus.rds")) |>
        dplyr::filter(
            publication_year > 2019
        ) |>
        dplyr::group_by(iso3c) |>
        dplyr::summarize(
            count_first = sum(as.integer(count_first), na.rm = TRUE),
            count_all = sum(as.integer(count_all), na.rm = TRUE),
            count_oa = sum(as.integer(count_oa), na.rm = TRUE),
        ) |>
        dplyr::mutate(
            count_oa = ifelse(is.na(count_oa), 0, count_oa),
            log_count_oa = log(count_oa + 1),
            p_oa = count_oa / sum(count_oa),
            #
            count_first = ifelse(is.na(count_first), 0, count_first),
            log_count_first = log(count_first + 1),
            p_first = count_first / sum(count_first),
            p_first_output = count_first / count_oa,
            p_first_diff = (p_oa - p_first) * 100,
            #
            count_all = ifelse(is.na(count_all), 0, count_all),
            log_count_all = log(count_all + 1),
            p_all = count_all / sum(count_all),
            p_all_output = count_all / count_oa,
            p_all_diff = (p_oa - p_all) * 100,
        )

    map <- patchwork::wrap_plots(
        data |>
            IPBES.R::map_country_codes(
                map_type = "countries",
                values = "count_oa",
                geodata_path = params$gdm_dir
            ) +
            ggplot2::scale_fill_gradient2(low = "#E69F00", high = "#56B4E9") +
            ggplot2::ggtitle("count of overall publications (count_oa)"),
        #
        data |>
            IPBES.R::map_country_codes(
                map_type = "countries",
                values = "count_first",
                geodata_path = params$gdm_dir
            ) +
            ggplot2::scale_fill_gradient2(low = "#E69F00", high = "#56B4E9") +
            ggplot2::ggtitle("count of TCA publications (count_first)"),
        #
        data |>
            IPBES.R::map_country_codes(
                map_type = "countries",
                values = "count_all",
                geodata_path = params$gdm_dir
            ) +
            ggplot2::scale_fill_gradient2(low = "#E69F00", high = "#56B4E9") +
            ggplot2::ggtitle("count of TCA publications (count_all)"),
        ####
        data |>
            IPBES.R::map_country_codes(
                map_type = "countries",
                values = "log_count_oa",
                geodata_path = params$gdm_dir
            ) +
            ggplot2::scale_fill_gradient2(low = "#E69F00", high = "#56B4E9") +
            ggplot2::ggtitle("log(count + 1) of overall publications (log_count_oa)"),
        #
        data |>
            IPBES.R::map_country_codes(
                map_type = "countries",
                values = "log_count_first",
                geodata_path = params$gdm_dir
            ) +
            ggplot2::scale_fill_gradient2(low = "#E69F00", high = "#56B4E9") +
            ggplot2::ggtitle("log(count + 1) of TCA publications (log_count_first)"),
        #
        data |>
            IPBES.R::map_country_codes(
                map_type = "countries",
                values = "log_count_all",
                geodata_path = params$gdm_dir
            ) +
            ggplot2::scale_fill_gradient2(low = "#E69F00", high = "#56B4E9") +
            ggplot2::ggtitle("log(count + 1) of TCA publications (log_count_all)"),
        ####
        data |>
            IPBES.R::map_country_codes(
                map_type = "countries",
                values = "p_oa",
                geodata_path = params$gdm_dir
            ) +
            ggplot2::scale_fill_gradient2(low = "#E69F00", high = "#56B4E9") +
            ggplot2::ggtitle("Overall research output (p_oa)"),
        #
        data |>
            IPBES.R::map_country_codes(
                map_type = "countries",
                values = "p_first",
                geodata_path = params$gdm_dir
            ) +
            ggplot2::scale_fill_gradient2(low = "#E69F00", high = "#56B4E9") +
            ggplot2::ggtitle("TCA research output (p_first)"),
        #
        data |>
            IPBES.R::map_country_codes(
                map_type = "countries",
                values = "p_all",
                geodata_path = params$gdm_dir
            ) +
            ggplot2::scale_fill_gradient2(low = "#E69F00", high = "#56B4E9") +
            ggplot2::ggtitle("TCA research output (p_all)"),
        ####
        ggplot() +
            theme_void(),
        data |>
            IPBES.R::map_country_codes(
                map_type = "countries",
                values = "p_first_diff",
                geodata_path = params$gdm_dir
            ) +
            ggplot2::scale_fill_gradient2(low = "#E69F00", mid = "white", high = "#56B4E9", midpoint = 0) +
            ggplot2::ggtitle("difference (TCA - overall) output (p_oa - p_first)"),
        #
        data |>
            IPBES.R::map_country_codes(
                map_type = "countries",
                values = "p_all_diff",
                geodata_path = params$gdm_dir
            ) +
            ggplot2::scale_fill_gradient2(low = "#E69F00", mid = "white", high = "#56B4E9", midpoint = 0) +
            ggplot2::ggtitle("difference (TCA - overall) output (p_oa - p_all)"),
        ncol = 3
    )

    ggplot2::ggsave(
        file.path("maps", "tca_corpus", "publications_countries_after_2019.pdf"),
        width = 12,
        height = 8,
        map
    )
    ggplot2::ggsave(
        file.path("maps", "tca_corpus", "publications_countries_after_2019.png"),
        width = 12,
        height = 8,
        map
    )
}

Topics and Sectors

Show the code
#|

fn <- file.path("data", "tca_corpus", "sectors_over_time.rds")
if (!file.exists(fn)) {
    data <- IPBES.R::corpus_read(params$corpus_topics_dir) |>
        dplyr::filter(
            name == "subfield"
        ) |>
        dplyr::group_by(
            publication_year,
            sector,
            i
        ) |>
        dplyr::summarize(
            count = n(),
            .groups = "drop"
        ) |>
        dplyr::rename(
            level = i
        ) |>
        dplyr::collect()

    data |>
        dplyr::filter(
            level == 1
        ) |>
        dplyr::group_by(
            publication_year,
            sector
        ) |>
        dplyr::summarize(
            count_1 = sum(count),
            .groups = "drop"
        ) |>
        dplyr::full_join(
            data |>
                dplyr::group_by(
                    publication_year,
                    sector
                ) |>
                dplyr::summarize(
                    count_all = sum(count)
                )
        ) |>
        dplyr::arrange(
            publication_year,
            sector
        ) |>
        dplyr::mutate(
            count_1 = ifelse(is.na(count_1), 0, count_1),
            count_all = ifelse(is.na(count_all), 0, count_all)
        ) |>
        dplyr::group_by(sector) |>
        dplyr::mutate(
            cumsum_count_1 = cumsum(count_1),
            cumsum_count_all = cumsum(count_all),
            p_cumsum_count_1 = cumsum_count_1 / max(cumsum_count_1),
            p_cumsum_count_all = cumsum_count_all / max(cumsum_count_all)
        ) |>
        saveRDS(fn)
    rm(data)
}
Show the code
#|

if (length(list.files(file.path("figures", "tca_corpus"), pattern = "sectors_over_time")) < 2) {
    figure_1 <- readRDS(file.path(file.path("data", "tca_corpus", "sectors_over_time.rds"))) |>
        dplyr::filter(
            publication_year >= 1950
        ) |>
        ggplot() +
        geom_line(
            aes(
                x = publication_year,
                y = cumsum_count_1,
                color = sector,
                lty = sector
            )
        ) +
        scale_x_continuous(breaks = seq(1900, 2020, 10)) +
        scale_y_continuous(
            "Log(No Publications)",
            trans = "log10"
            # sec.axis = sec_axis(~ . * 10, name = "Cumulative proportion") # divide by 100 to scale back the secondary axis
        ) +
        labs(
            title = "Publications classified into Sectors over time (primary sector only)",
            x = "Year"
            # y = "Number of publications"
        ) +
        theme_minimal() +
        theme(
            legend.position = "bottom",
            # axis.text.y.right = element_text(color = "red")
        )

    figure_all <- readRDS(file.path(file.path("data", "tca_corpus", "sectors_over_time.rds"))) |>
        dplyr::filter(
            publication_year >= 1950
        ) |>
        ggplot() +
        geom_line(
            aes(
                x = publication_year,
                y = cumsum_count_all,
                color = sector,
                lty = sector
            )
        ) +
        scale_x_continuous(breaks = seq(1900, 2020, 10)) +
        scale_y_continuous(
            "Log(No Publications)",
            trans = "log10"
            # sec.axis = sec_axis(~ . * 10, name = "Cumulative proportion") # divide by 100 to scale back the secondary axis
        ) +
        labs(
            title = "Publications classified into Sectors over time (up to three sectors)",
            x = "Year"
            # y = "Number of publications"
        ) +
        theme_minimal() +
        theme(
            legend.position = "none",
            # axis.text.y.right = element_text(color = "red")
        )

    figure <- patchwork::wrap_plots(
        figure_1,
        figure_all,
        nrow = 2
    )

    ggplot2::ggsave(
        file.path("figures", "tca_corpus", "sectors_over_time.pdf"),
        width = 12,
        height = 12,
        figure
    )
    ggplot2::ggsave(
        file.path("figures", "tca_corpus", "sectors_over_time.png"),
        width = 12,
        height = 12,
        figure
    )

    rm(figure_1, figure_all, figure)
}
Show the code
#|

if (length(list.files(file.path("figures", "tca_corpus"), pattern = "sectors_proportions_over_time")) < 2) {
    figure <- readRDS(file.path(file.path("data", "tca_corpus", "sectors_over_time.rds"))) |>
        dplyr::filter(
            publication_year >= 1950
        ) |>
        group_by(publication_year) |>
        mutate(count_all = count_all / sum(count_all)) |>
        ggplot() +
        geom_col(
            aes(
                x = publication_year,
                y = count_all,
                fill = sector
            ),
            position = "stack"
        ) +
        scale_x_continuous(breaks = seq(1900, 2020, 10)) +
        scale_y_continuous(
            "Proportion of Publications" # ,
            #    limits = c(0, 1.0001)
        ) +
        labs(
            title = "Publications classified into Sectors over time. Each publication has up to three sectors assigned.",
            x = "Year",
            y = "Proportion"
        ) +
        theme_minimal() +
        theme(
            legend.position = "right"
        )

    ggplot2::ggsave(
        file.path("figures", "tca_corpus", "sectors_proportions_over_time.pdf"),
        width = 12,
        height = 12,
        figure
    )
    ggplot2::ggsave(
        file.path("figures", "tca_corpus", "sectors_proportions_over_time.png"),
        width = 12,
        height = 12,
        figure
    )

    rm(figure)
}

Results

Assessment of Search Terms Using OpenAlex

Number of Hits per Individual Corpus

Here we show the number of hits for the key papers in the different individual corpi. The columns represent the different search terms as defined in Section 2.2.

Show the code
dat <- cbind(
    search_term_hits
)

rownames(dat) <- dplyr::recode(
    rownames(dat),
    "transformative change" = "Transformative Change @sec-transform",
    "nature environment" = "Nature @sec-nature",
    "tca corpus" = "Assessment Corpus @sec-tca-corpus",
    "Chapter 1 01" = "Ch1 01 @sec-ch1-01",
    "Chapter 1 02" = "Ch1 02 @sec-ch1-02",
    "Chapter 1 03" = "Ch1 03 @sec-ch1-03",
    "Chapter 1 04" = "Ch1 04 @sec-ch1-04",
    "Chapter 1 05" = "Ch1 05 @sec-ch1-05",
    "Chapter 1 06" = "Ch1 06 @sec-ch1-06",
    "Chapter 2" = "Ch2  @sec-ch2",
    "Chapter 3 01" = "Ch3 01 @sec-ch3-01",
    "Chapter 3 02" = "Ch3 02 @sec-ch3-02",
    "Chapter 3 03" = "Ch3 03 @sec-ch3-03",
    "Chapter 3 04" = "Ch3 04 @sec-ch3-04",
    "Chapter 3 05" = "Ch3 05 @sec-ch3-05",
    "Chapter 3 06" = "Ch3 06 @sec-ch3-06",
    "Chapter 4 01" = "Ch4 01 @sec-ch4-01",
    "Chapter 4 02" = "Ch4 02 @sec-ch4-02",
    "Chapter 5 vision" = "Ch5 Vision @sec-ch5_vision",
    "Chapter 5 vision case" = "Ch5 Vision Case @sec-ch5_vision_case",
    "case" = "Ch5 Case @sec-case"
)

dat |>
    knitr::kable(
        caption = "Number of hits",
    )
Number of hits
count db_response_time_ms
oa 251,854,856 85
Transformative Change Section 2.2.1 18,727,697 5184
Nature Section 2.2.2 24,786,104 3390
Assessment Corpus Section 2.2.3 4,654,669 5719
Ch1 01 Section 2.2.4.1 631,344 358
Ch1 02 Section 2.2.4.2 3,247,693 511
Ch1 03 Section 2.2.4.3 16,268,481 711
Ch1 04 Section 2.2.4.4 2,527,663 833
Ch1 05 Section 2.2.4.5 26,130,315 645
Ch1 06 Section 2.2.4.6 6,545,320 673
Ch2 Section 2.2.5 110,354,370 7039
Ch3 01 Section 2.2.6.1 16,078,556 846
Ch3 02 Section 2.2.6.2 33,775,470 1419
Ch3 03 Section 2.2.6.3 28,999,876 936
Ch3 04 Section 2.2.6.4 10,855,225 891
Ch3 05 Section 2.2.6.5 13,251,850 1226
Ch3 06 Section 2.2.6.6 20,963,305 980
Ch4 01 Section 2.2.7.1 889,107 1284
Ch4 02 Section 2.2.7.2 21 757
Ch5 Case Section 2.2.11.2 54,773,142 5033
Show the code
rm(dat)

Key papers in different Individual Corpi

Show the code
#|

tbl <- lapply(
    names(key_works_hits),
    function(n) {
        kwh <- key_works_hits[[n]]
        if (nrow(kwh) > 0) {
            total <- grepl("Total", rownames(kwh))
            rownames(kwh)[!total] <- paste0(n, " - <a href='https://doi.org/", rownames(kwh)[!total], "' target='_blank'>Click here</a>")
            rownames(kwh)[total] <- paste0("**", n, " - Total**")
            kwh |>
                arrange(Total) |>
                apply(
                    c(1, 2),
                    function(x) {
                        ifelse(x == 0, "<font color='red'>0</font>", paste0("<font color='green'>", x, "</font>"))
                    }
                ) |>
                as.data.frame()
        } else {
            return(NULL)
        }
    }
)
tbl <- tbl[sapply(tbl, class) != "NULL"]
tbl <- do.call(what = rbind, tbl)


detail <- rbind(
    "**overall**" = c(
        paste0(
            "**",
            search_term_hits |>
                select(count) |>
                unlist() |>
                as.vector(),
            "**"
        ),
        ""
    ),
    tbl
)

detail <- detail |>
    dplyr::rename(
        "Transformative Change @sec-transform" = s_1_transformative_change,
        "Nature @sec-nature" = s_1_nature_environment,
        "Assessment Corpus @sec-tca-corpus" = s_1_tca_corpus,
        "Ch1 01 @sec-ch1-01" = s_1_ch1_01,
        "Ch1 02 @sec-ch1-02" = s_1_ch1_02,
        "Ch1 03 @sec-ch1-03" = s_1_ch1_03,
        "Ch1 04 @sec-ch1-04" = s_1_ch1_04,
        "Ch1 05 @sec-ch1-05" = s_1_ch1_05,
        "Ch1 06 @sec-ch1-06" = s_1_ch1_06,
        "Ch2  @sec-ch2" = s_1_ch2,
        "Ch3 01 @sec-ch3-01" = s_1_ch3_01,
        "Ch3 02 @sec-ch3-02" = s_1_ch3_02,
        "Ch3 03 @sec-ch3-03" = s_1_ch3_03,
        "Ch3 04 @sec-ch3-04" = s_1_ch3_04,
        "Ch3 05 @sec-ch3-05" = s_1_ch3_05,
        "Ch3 06 @sec-ch3-06" = s_1_ch3_06,
        "Ch4 01 @sec-ch4-01" = s_1_ch4_01,
        "Ch4 02 @sec-ch4-02" = s_1_ch4_02,
        # "Ch5 Vision @sec-ch5_vision" = s_1_ch5_vision,
        "Ch5 Case @sec-case" = s_1_case,
        # "Ch5 Vision Case @sec-ch5_vision_case" = s_1_ch5_vision_case
    )

Key Papers in Individual Corpi

Summary

Each column is a different search term, and each row consists of the key papers of a specific chapter and the author who provided the key papers. The number is the number of key papers occurring in the Individual Corpus.

Show the code
in_summary <- grepl("Total|overall", rownames(detail))
knitr::kable(
    detail[in_summary, ]
)
s_1_oa Transformative Change Section 2.2.1 Nature Section 2.2.2 Assessment Corpus Section 2.2.3 Ch1 01 Section 2.2.4.1 Ch1 02 Section 2.2.4.2 Ch1 03 Section 2.2.4.3 Ch1 04 Section 2.2.4.4 Ch1 05 Section 2.2.4.5 Ch1 06 Section 2.2.4.6 Ch2 Section 2.2.5 Ch3 01 Section 2.2.6.1 Ch3 02 Section 2.2.6.2 Ch3 03 Section 2.2.6.3 Ch3 04 Section 2.2.6.4 Ch3 05 Section 2.2.6.5 Ch3 06 Section 2.2.6.6 Ch4 01 Section 2.2.7.1 Ch4 02 Section 2.2.7.2 Ch5 Case Section 2.2.11.2 Total
overall 251,854,856 18,727,697 24,786,104 4,654,669 631,344 3,247,693 16,268,481 2,527,663 26,130,315 6,545,320 110,354,370 16,078,556 33,775,470 28,999,876 10,855,225 13,251,850 20,963,305 889,107 21 54,773,142
Ch_1 - Total 42 40 41 39 19 28 35 30 31 30 41 30 33 33 22 33 35 28 0 34 623
Ch_2 - Total 22 20 22 20 9 17 18 12 17 18 22 20 19 19 15 21 21 16 0 18 345
Ch_3_Cl_3 - Total 4 4 4 4 3 3 4 3 4 4 4 4 4 4 4 4 4 3 0 4 71
Ch_3_Cl_4 - Total 5 5 5 5 5 4 5 5 5 5 5 5 5 5 5 5 5 4 0 5 92
Ch_3_Cl_5 - Total 3 2 3 2 0 2 2 2 2 2 2 2 2 2 2 2 2 2 0 2 37
Ch_3_Cl_6 - Total 6 6 5 5 1 1 2 3 1 3 5 2 4 5 1 1 5 2 0 3 60
Ch_3 - Total 4 4 4 4 2 1 2 2 3 3 4 3 4 3 1 2 3 2 0 4 54
Ch_4_Cl_1 - Total 7 4 7 4 1 4 5 5 3 5 7 4 4 4 4 6 7 4 0 4 88
Ch_4_Cl_2 - Total 4 3 3 3 2 2 3 1 2 2 3 2 3 3 1 3 3 2 0 2 46
Ch_4_Cl_3 - Total 5 5 5 5 2 2 4 2 3 3 4 3 4 4 3 3 4 2 0 4 66
Ch_4_Cl_4 - Total 4 2 4 2 1 1 3 1 1 2 4 2 1 2 2 2 4 1 0 4 42
Ch_4_Cl_5 - Total 5 3 4 3 1 2 4 2 4 2 5 5 4 4 3 3 5 3 0 4 65
Ch_5 - Total 35 33 33 31 20 23 27 27 26 25 35 29 30 33 26 28 30 20 0 30 540
all - Total 134 120 128 116 60 82 105 87 93 95 130 102 106 110 82 104 118 81 0 108 1960

Detail

Show the code
knitr::kable(
    detail
)
s_1_oa Transformative Change Section 2.2.1 Nature Section 2.2.2 Assessment Corpus Section 2.2.3 Ch1 01 Section 2.2.4.1 Ch1 02 Section 2.2.4.2 Ch1 03 Section 2.2.4.3 Ch1 04 Section 2.2.4.4 Ch1 05 Section 2.2.4.5 Ch1 06 Section 2.2.4.6 Ch2 Section 2.2.5 Ch3 01 Section 2.2.6.1 Ch3 02 Section 2.2.6.2 Ch3 03 Section 2.2.6.3 Ch3 04 Section 2.2.6.4 Ch3 05 Section 2.2.6.5 Ch3 06 Section 2.2.6.6 Ch4 01 Section 2.2.7.1 Ch4 02 Section 2.2.7.2 Ch5 Case Section 2.2.11.2 Total
overall 251,854,856 18,727,697 24,786,104 4,654,669 631,344 3,247,693 16,268,481 2,527,663 26,130,315 6,545,320 110,354,370 16,078,556 33,775,470 28,999,876 10,855,225 13,251,850 20,963,305 889,107 21 54,773,142
Ch_1 - Click here 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 3
Ch_1 - Click here 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 3
Ch_1 - Click here 1 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 4
Ch_1 - Click here 1 1 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 5
Ch_1 - Click here 1 1 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 6
Ch_1 - Click here 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 7
Ch_1 - Click here 1 1 1 1 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 0 7
Ch_1 - Click here 1 1 1 1 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 1 8
Ch_1 - Click here 1 1 1 1 0 1 1 0 0 1 1 0 0 0 0 1 0 0 0 0 8
Ch_1 - Click here 1 1 1 1 0 0 0 0 0 1 1 0 1 1 0 0 1 0 0 1 9
Ch_1 - Click here 1 1 1 1 0 0 1 0 0 0 1 0 1 1 0 1 1 0 0 1 10
Ch_1 - Click here 1 1 1 1 0 1 1 0 0 1 1 0 0 1 0 1 1 1 0 0 11
Ch_1 - Click here 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 1 1 0 0 11
Ch_1 - Click here 1 1 1 1 0 1 1 1 0 0 1 1 1 1 1 1 1 0 0 1 14
Ch_1 - Click here 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 0 0 1 15
Ch_1 - Click here 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 15
Ch_1 - Click here 1 1 1 1 0 1 0 1 1 1 1 1 1 1 0 1 1 1 0 1 15
Ch_1 - Click here 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 1 0 1 15
Ch_1 - Click here 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 0 0 1 15
Ch_1 - Click here 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 16
Ch_1 - Click here 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 16
Ch_1 - Click here 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 16
Ch_1 - Click here 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 16
Ch_1 - Click here 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 0 1 16
Ch_1 - Click here 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 17
Ch_1 - Click here 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 17
Ch_1 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 17
Ch_1 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
Ch_1 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
Ch_1 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
Ch_1 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
Ch_1 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
Ch_1 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
Ch_1 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
Ch_1 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
Ch_1 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
Ch_1 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
Ch_1 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
Ch_1 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
Ch_1 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
Ch_1 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
Ch_1 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
Ch_1 - Total 42 40 41 39 19 28 35 30 31 30 41 30 33 33 22 33 35 28 0 34 623
Ch_2 - Click here 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 4
Ch_2 - Click here 1 0 1 0 0 0 0 0 1 0 1 1 0 0 0 1 1 1 0 1 8
Ch_2 - Click here 1 1 1 1 0 0 1 0 0 0 1 1 1 1 0 1 0 0 0 0 9
Ch_2 - Click here 1 1 1 1 0 1 0 1 0 1 1 0 0 0 0 1 1 0 0 1 10
Ch_2 - Click here 1 1 1 1 0 1 0 0 0 1 1 1 1 1 1 1 1 0 0 0 12
Ch_2 - Click here 1 1 1 1 0 1 0 0 1 1 1 1 1 1 1 1 1 0 0 1 14
Ch_2 - Click here 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 1 1 0 1 15
Ch_2 - Click here 1 1 1 1 0 1 1 0 1 1 1 1 1 1 0 1 1 1 0 1 15
Ch_2 - Click here 1 1 1 1 0 1 1 0 1 0 1 1 1 1 1 1 1 1 0 1 15
Ch_2 - Click here 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 0 0 1 15
Ch_2 - Click here 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 15
Ch_2 - Click here 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 17
Ch_2 - Click here 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 17
Ch_2 - Click here 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 17
Ch_2 - Click here 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 17
Ch_2 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 17
Ch_2 - Click here 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 17
Ch_2 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
Ch_2 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
Ch_2 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
Ch_2 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
Ch_2 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
Ch_2 - Total 22 20 22 20 9 17 18 12 17 18 22 20 19 19 15 21 21 16 0 18 345
Ch_3_Cl_3 - Click here 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 16
Ch_3_Cl_3 - Click here 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 17
Ch_3_Cl_3 - Click here 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 17
Ch_3_Cl_3 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
Ch_3_Cl_3 - Total 4 4 4 4 3 3 4 3 4 4 4 4 4 4 4 4 4 3 0 4 71
Ch_3_Cl_4 - Click here 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 16
Ch_3_Cl_4 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
Ch_3_Cl_4 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
Ch_3_Cl_4 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
Ch_3_Cl_4 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
Ch_3_Cl_4 - Total 5 5 5 5 5 4 5 5 5 5 5 5 5 5 5 5 5 4 0 5 92
Ch_3_Cl_5 - Click here 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
Ch_3_Cl_5 - Click here 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 17
Ch_3_Cl_5 - Click here 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 17
Ch_3_Cl_5 - Total 3 2 3 2 0 2 2 2 2 2 2 2 2 2 2 2 2 2 0 2 37
Ch_3_Cl_6 - Click here 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 5
Ch_3_Cl_6 - Click here 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 0 0 0 6
Ch_3_Cl_6 - Click here 1 1 1 1 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 7
Ch_3_Cl_6 - Click here 1 1 1 1 0 0 0 1 0 1 1 0 0 0 0 0 1 0 0 1 8
Ch_3_Cl_6 - Click here 1 1 1 1 0 0 1 0 0 1 1 0 1 1 0 0 1 1 0 1 11
Ch_3_Cl_6 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
Ch_3_Cl_6 - Total 6 6 5 5 1 1 2 3 1 3 5 2 4 5 1 1 5 2 0 3 60
Ch_3 - Click here 1 1 1 1 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 1 8
Ch_3 - Click here 1 1 1 1 0 0 0 0 0 1 1 0 1 1 0 0 1 0 0 1 9
Ch_3 - Click here 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 17
Ch_3 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 17
Ch_3 - Total 4 4 4 4 2 1 2 2 3 3 4 3 4 3 1 2 3 2 0 4 54
Ch_4_Cl_1 - Click here 1 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 4
Ch_4_Cl_1 - Click here 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 4
Ch_4_Cl_1 - Click here 1 0 1 0 0 0 1 0 0 1 1 0 0 0 0 1 1 0 0 0 6
Ch_4_Cl_1 - Click here 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 17
Ch_4_Cl_1 - Click here 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 17
Ch_4_Cl_1 - Click here 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 17
Ch_4_Cl_1 - Click here 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 17
Ch_4_Cl_1 - Total 7 4 7 4 1 4 5 5 3 5 7 4 4 4 4 6 7 4 0 4 88
Ch_4_Cl_2 - Click here 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Ch_4_Cl_2 - Click here 1 1 1 1 0 0 1 0 0 0 1 0 1 1 0 1 1 0 0 0 9
Ch_4_Cl_2 - Click here 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 0 1 16
Ch_4_Cl_2 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
Ch_4_Cl_2 - Total 4 3 3 3 2 2 3 1 2 2 3 2 3 3 1 3 3 2 0 2 46
Ch_4_Cl_3 - Click here 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 5
Ch_4_Cl_3 - Click here 1 1 1 1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 1 7
Ch_4_Cl_3 - Click here 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 0 0 1 15
Ch_4_Cl_3 - Click here 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 17
Ch_4_Cl_3 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
Ch_4_Cl_3 - Total 5 5 5 5 2 2 4 2 3 3 4 3 4 4 3 3 4 2 0 4 66
Ch_4_Cl_4 - Click here 1 0 1 0 0 0 1 1 0 0 1 0 0 0 0 0 1 0 0 1 6
Ch_4_Cl_4 - Click here 1 0 1 0 0 0 1 0 0 0 1 0 0 1 1 1 1 0 0 1 8
Ch_4_Cl_4 - Click here 1 1 1 1 0 1 0 0 0 1 1 1 0 0 0 0 1 0 0 1 9
Ch_4_Cl_4 - Click here 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 0 1 16
Ch_4_Cl_4 - Total 4 2 4 2 1 1 3 1 1 2 4 2 1 2 2 2 4 1 0 4 42
Ch_4_Cl_5 - Click here 1 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0 1 0 0 0 6
Ch_4_Cl_5 - Click here 1 0 0 0 0 0 1 1 1 0 1 1 0 0 0 0 1 0 0 1 7
Ch_4_Cl_5 - Click here 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 16
Ch_4_Cl_5 - Click here 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 0 1 16
Ch_4_Cl_5 - Click here 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 16
Ch_4_Cl_5 - Total 5 3 4 3 1 2 4 2 4 2 5 5 4 4 3 3 5 3 0 4 65
Ch_5 - Click here 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 2
Ch_5 - Click here 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 3
Ch_5 - Click here 1 1 1 1 0 0 0 0 0 1 1 0 0 1 0 0 1 0 0 0 7
Ch_5 - Click here 1 1 1 1 0 0 1 0 0 0 1 1 1 1 0 0 0 0 0 0 8
Ch_5 - Click here 1 0 1 0 0 0 1 0 0 0 1 0 0 1 1 1 1 0 0 1 8
Ch_5 - Click here 1 1 0 0 0 1 1 0 1 1 1 0 0 1 0 0 0 0 0 1 8
Ch_5 - Click here 1 1 1 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 9
Ch_5 - Click here 1 1 1 1 0 0 0 1 0 0 1 0 1 1 1 1 1 0 0 1 11
Ch_5 - Click here 1 1 1 1 0 0 0 1 0 0 1 1 1 1 1 1 1 0 0 1 12
Ch_5 - Click here 1 1 1 1 0 0 0 1 0 0 1 1 1 1 1 1 1 0 0 1 12
Ch_5 - Click here 1 1 1 1 0 1 0 0 1 0 1 1 1 1 0 1 1 1 0 1 13
Ch_5 - Click here 1 1 1 1 0 1 0 1 1 0 1 1 1 1 1 1 1 0 0 1 14
Ch_5 - Click here 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 1 0 0 1 14
Ch_5 - Click here 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 16
Ch_5 - Click here 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 16
Ch_5 - Click here 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 17
Ch_5 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 17
Ch_5 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 17
Ch_5 - Click here 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 17
Ch_5 - Click here 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 17
Ch_5 - Click here 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 17
Ch_5 - Click here 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 17
Ch_5 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
Ch_5 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
Ch_5 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
Ch_5 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
Ch_5 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
Ch_5 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
Ch_5 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
Ch_5 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
Ch_5 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
Ch_5 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
Ch_5 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
Ch_5 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
Ch_5 - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
Ch_5 - Total 35 33 33 31 20 23 27 27 26 25 35 29 30 33 26 28 30 20 0 30 540
all - Click here 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
all - Click here 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
all - Click here 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 2
all - Click here 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 3
all - Click here 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 3
all - Click here 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 3
all - Click here 1 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 4
all - Click here 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 4
all - Click here 1 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 4
all - Click here 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 4
all - Click here 1 1 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 5
all - Click here 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 5
all - Click here 1 1 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 6
all - Click here 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 0 0 0 6
all - Click here 1 0 1 0 0 0 1 0 0 1 1 0 0 0 0 1 1 0 0 0 6
all - Click here 1 0 1 0 0 0 1 1 0 0 1 0 0 0 0 0 1 0 0 1 6
all - Click here 1 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0 1 0 0 0 6
all - Click here 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 7
all - Click here 1 1 1 1 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 0 7
all - Click here 1 1 1 1 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 7
all - Click here 1 1 1 1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 1 7
all - Click here 1 0 0 0 0 0 1 1 1 0 1 1 0 0 0 0 1 0 0 1 7
all - Click here 1 1 1 1 0 0 0 0 0 1 1 0 0 1 0 0 1 0 0 0 7
all - Click here 1 1 1 1 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 1 8
all - Click here 1 1 1 1 0 1 1 0 0 1 1 0 0 0 0 1 0 0 0 0 8
all - Click here 1 0 1 0 0 0 0 0 1 0 1 1 0 0 0 1 1 1 0 1 8
all - Click here 1 1 1 1 0 0 0 1 0 1 1 0 0 0 0 0 1 0 0 1 8
all - Click here 1 0 1 0 0 0 1 0 0 0 1 0 0 1 1 1 1 0 0 1 8
all - Click here 1 1 1 1 0 0 1 0 0 0 1 1 1 1 0 0 0 0 0 0 8
all - Click here 1 1 0 0 0 1 1 0 1 1 1 0 0 1 0 0 0 0 0 1 8
all - Click here 1 1 1 1 0 0 0 0 0 1 1 0 1 1 0 0 1 0 0 1 9
all - Click here 1 1 1 1 0 0 1 0 0 0 1 1 1 1 0 1 0 0 0 0 9
all - Click here 1 1 1 1 0 0 1 0 0 0 1 0 1 1 0 1 1 0 0 0 9
all - Click here 1 1 1 1 0 1 0 0 0 1 1 1 0 0 0 0 1 0 0 1 9
all - Click here 1 1 1 1 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 9
all - Click here 1 1 1 1 0 0 1 0 0 0 1 0 1 1 0 1 1 0 0 1 10
all - Click here 1 1 1 1 0 1 0 1 0 1 1 0 0 0 0 1 1 0 0 1 10
all - Click here 1 1 1 1 0 1 1 0 0 1 1 0 0 1 0 1 1 1 0 0 11
all - Click here 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 1 1 0 0 11
all - Click here 1 1 1 1 0 0 1 0 0 1 1 0 1 1 0 0 1 1 0 1 11
all - Click here 1 1 1 1 0 0 0 1 0 0 1 0 1 1 1 1 1 0 0 1 11
all - Click here 1 1 1 1 0 1 0 0 0 1 1 1 1 1 1 1 1 0 0 0 12
all - Click here 1 1 1 1 0 0 0 1 0 0 1 1 1 1 1 1 1 0 0 1 12
all - Click here 1 1 1 1 0 0 0 1 0 0 1 1 1 1 1 1 1 0 0 1 12
all - Click here 1 1 1 1 0 1 0 0 1 0 1 1 1 1 0 1 1 1 0 1 13
all - Click here 1 1 1 1 0 1 1 1 0 0 1 1 1 1 1 1 1 0 0 1 14
all - Click here 1 1 1 1 0 1 0 0 1 1 1 1 1 1 1 1 1 0 0 1 14
all - Click here 1 1 1 1 0 1 0 1 1 0 1 1 1 1 1 1 1 0 0 1 14
all - Click here 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 1 0 0 1 14
all - Click here 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 0 0 1 15
all - Click here 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 15
all - Click here 1 1 1 1 0 1 0 1 1 1 1 1 1 1 0 1 1 1 0 1 15
all - Click here 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 1 0 1 15
all - Click here 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 0 0 1 15
all - Click here 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 1 1 0 1 15
all - Click here 1 1 1 1 0 1 1 0 1 1 1 1 1 1 0 1 1 1 0 1 15
all - Click here 1 1 1 1 0 1 1 0 1 0 1 1 1 1 1 1 1 1 0 1 15
all - Click here 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 0 0 1 15
all - Click here 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 0 0 1 15
all - Click here 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 16
all - Click here 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 16
all - Click here 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 16
all - Click here 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 16
all - Click here 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 0 1 16
all - Click here 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 16
all - Click here 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 16
all - Click here 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 0 1 16
all - Click here 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 0 1 16
all - Click here 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 16
all - Click here 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 0 1 16
all - Click here 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 16
all - Click here 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 16
all - Click here 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 16
all - Click here 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 17
all - Click here 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 17
all - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 17
all - Click here 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 17
all - Click here 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 17
all - Click here 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 17
all - Click here 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 17
all - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 17
all - Click here 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 17
all - Click here 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 17
all - Click here 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 17
all - Click here 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 17
all - Click here 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 17
all - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 17
all - Click here 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 17
all - Click here 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 17
all - Click here 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 17
all - Click here 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 17
all - Click here 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 17
all - Click here 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 17
all - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 17
all - Click here 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 17
all - Click here 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 17
all - Click here 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 17
all - Click here 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 17
all - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
all - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
all - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
all - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
all - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
all - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
all - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
all - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
all - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
all - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
all - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
all - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
all - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
all - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
all - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
all - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
all - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
all - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
all - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
all - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
all - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
all - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
all - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
all - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
all - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
all - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
all - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
all - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
all - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
all - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
all - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
all - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
all - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
all - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
all - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
all - Click here 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 18
all - Total 134 120 128 116 60 82 105 87 93 95 130 102 106 110 82 104 118 81 0 108 1960

TCA Corpus properties

Publications over time

The red line is the cumulative proportion of publications, the blue line the cumulative proportion of all of the Op[enAlex corpus. Both use the secondeary (red) axis.

To download high resolution, click here

Show the code
readRDS(file.path(".", "data", "tca_corpus", "publications_over_time_tca_corpus.rds")) |>
    IPBES.R::table_dt(fn = "publications_over_time")

Countries in TCA Corpus

The countries are based on the countries of the institutes of all authors, weighted by 1/no_ authors_per_paper.

The following calculations were done:

  • **count** =ifelse(is.na(count), 0, count)`
  • **log_count** =log(count + 1)`
  • **p** =count / sum(count)`
  • **count_oa** =ifelse(is.na(count_oa), 0, count)`
  • **log_count_oa** =log(count_oa + 1)`
  • **p_oa** =count_oa / sum(count_oa)`
  • **p_diff** =(p_oa - p) * 100`
  • **p_ratio** =count / count_oa`
Show the code
readRDS(file.path(".", "data", "tca_corpus", "countries_tca_corpus.rds")) |>
    IPBES.R::table_dt(fn = "publications_per_country")

All Years

To download high resolution, click here

Sectors over time

For clarity, the log of the cumulative sum of the sectors over time are shown here.

The top graph shows only the primary sector assigned, the bottom graph all sectors (first, secondary and tertiary)

To download high resolution, click here

The graph shows the proportion of the different sectors over time

To download high resolution, click here

Show the code
readRDS(file.path(".", "data", "tca_corpus", "sectors_over_time.rds")) |>
    IPBES.R::table_dt(
        fn = "sectors_over_time",
        fixedColumns = list(leftColumns = 3)
    )

Topics in corpus

Show the code
#|

cs <- cumsum(prim_topics_tca_corpus$count)
cs |>
    plot(
        type = "l",
        xlab = "Topic",
        ylab = "Cumulative Count",
        main = "Cumulative Topics in TCA Corpus"
    )

abline(
    h = 0.95 * cs[length(cs)],
    v = min(which(cs > 0.95 * cs[length(cs)])),
    col = "red"
)

text(
    x = 0.5 * length(cs),
    y = 0.95 * cs[length(cs)],
    pos = 3,
    labels = "95% of the corpus",
    col = "red"
)

Show the code
#|

prim_topics_tca_corpus |>
    relocate(count, .after = "id") |>
    IPBES.R::table_dt(
        fn = "topics_tca_corpus",
    )
Warning in instance$preRenderHook(instance): It seems your data is too big for
client-side DataTables. You may consider server-side processing:
https://rstudio.github.io/DT/server.html

SubFields in Corpus

Show the code
#|
cs <- prim_topics_tca_corpus |>
    mutate(
        id = NULL,
        topic_name = NULL,
        keywords = NULL,
        summary = NULL,
        wikipedia_url = NULL
    ) |>
    group_by(
        subfield_id,
    ) |>
    summarise(
        count = sum(count)
    ) |>
    arrange(desc(count)) |>
    dplyr::select(count) |>
    unlist() |>
    cumsum()
cs |>
    plot(
        type = "l",
        xlab = "Subfield",
        ylab = "Cumulative Count",
        main = "Cumulative Subfields in TCA Corpus"
    )

abline(
    h = 0.95 * cs[length(cs)],
    v = min(which(cs > 0.95 * cs[length(cs)])),
    col = "red"
)

text(
    x = 0.5 * length(cs),
    y = 0.95 * cs[length(cs)],
    pos = 3,
    labels = "95% of the corpus",
    col = "red"
)

Show the code
#|

prim_topics_tca_corpus |>
    mutate(
        topic_id = NULL,
        topic_name = NULL,
        keywords = NULL,
        summary = NULL,
        wikipedia_url = NULL
    ) |>
    group_by(
        subfield_id,
        subfield_name,
        field_id,
        field_name,
        domain_id,
        domain_name
    ) |>
    summarise(
        count = sum(count),
        .groups = "drop"
    ) |>
    arrange(desc(count)) |>
    relocate(count, .after = "subfield_id") |>
    DT::datatable(
        extensions = c(
            "Buttons",
            "FixedColumns",
            "Scroller"
        ),
        options = list(
            dom = "Bfrtip",
            buttons = list(
                list(
                    extend = "csv",
                    filename = fn
                ),
                list(
                    extend = "excel",
                    filename = fn
                ),
                list(
                    extend = "pdf",
                    filename = fn,
                    orientation = "landscape",
                    customize = DT::JS(
                        "function(doc) {",
                        "  doc.defaultStyle.fontSize = 5;", # Change the font size
                        "}"
                    )
                ),
                "print"
            ),
            scroller = TRUE,
            scrollY = JS("window.innerHeight * 0.7 + 'px'"),
            scrollX = TRUE,
            fixedColumns = list(leftColumns = 4)
        ),
        escape = FALSE
    )

Additional Searches subsets

Show the code
file.path(".", "data", "tca_corpus", "additional_search.rds") |>
    readRDS() |>
    knitr::kable()
x
“Biocultural conservation” OR “Co-management” OR “Community-based management” OR “Community-led conservation” OR “Community protocol” OR “Convivial conservation” OR “Ecosystem-based approach” OR “Forest conservation” OR “High sea conservation” OR “Indigenous and Community Conserved Area” OR ICCA OR “Marine protected area” OR MPA OR “Marine reserve” OR “Marine park” OR “Other Effective area-based Conservation Measure” OR OECM OR “Protected area” OR “Remedial action” OR Restoration OR Rewilding OR “sacred site” OR “sacred grove” OR “Transboundary protected area” OR “High seas conservation” OR “Indigenous-led conservation” OR “Co-management” OR “Land sovereignty”
x
152254
x
FALSE
publication_year count
1820 1
1832 1
1836 1
1837 1
1838 2
1839 1
1842 1
1843 1
1844 1
1848 1
1850 1
1851 1
1854 1
1858 1
1859 1
1861 1
1862 1
1864 1
1868 1
1870 3
1872 1
1873 1
1874 1
1877 1
1878 1
1880 1
1881 1
1882 1
1883 1
1884 1
1885 1
1886 1
1887 1
1891 1
1892 1
1893 1
1894 2
1895 2
1896 2
1897 4
1898 2
1899 5
1901 4
1902 2
1903 2
1905 1
1906 4
1907 1
1908 1
1909 3
1910 2
1911 5
1912 3
1913 3
1914 3
1915 3
1916 3
1917 4
1918 5
1919 8
1920 8
1921 4
1922 9
1923 1
1924 5
1925 7
1926 7
1927 2
1928 9
1929 3
1930 4
1931 8
1932 12
1933 10
1934 9
1935 19
1936 15
1937 11
1938 8
1939 9
1940 8
1941 14
1942 17
1943 11
1944 14
1945 13
1946 12
1947 11
1948 16
1949 19
1950 18
1951 16
1952 20
1953 19
1954 33
1955 26
1956 23
1957 53
1958 36
1959 38
1960 42
1961 40
1962 50
1963 55
1964 60
1965 54
1966 75
1967 58
1968 85
1969 100
1970 112
1971 80
1972 99
1973 124
1974 110
1975 145
1976 165
1977 147
1978 184
1979 232
1980 231
1981 243
1982 305
1983 308
1984 333
1985 355
1986 375
1987 433
1988 435
1989 596
1990 523
1991 594
1992 681
1993 770
1994 867
1995 925
1996 997
1997 1101
1998 1289
1999 1249
2000 1512
2001 1683
2002 1892
2003 2101
2004 2241
2005 2590
2006 2731
2007 3016
2008 3205
2009 3665
2010 4073
2011 4484
2012 4606
2013 5365
2014 5626
2015 6905
2016 6718
2017 6378
2018 7520
2019 8251
2020 9984
2021 11418
2022 12891
2023 13764
2024 4317
2025 1
term count
Restoration 498731
MPA 343628
“Protected area” 98532
“Marine protected area” 12065
“Remedial action” 10762
“Forest conservation” 8151
“Marine park” 7140
“Co-management” 6397
“Co-management” 6397
“Marine reserve” 5538
ICCA 2490
“sacred site” 2489
Rewilding 1787
“Community-based management” 1633
“sacred grove” 1491
“Ecosystem-based approach” 1204
OECM 283
“Community protocol” 270
“Biocultural conservation” 193
“Other Effective area-based Conservation Measure” 160
“Transboundary protected area” 153
“Land sovereignty” 96
“Community-led conservation” 41
“Convivial conservation” 39
“Indigenous and Community Conserved Area” 38
“High sea conservation” 27
“High seas conservation” 27
“Indigenous-led conservation” 27
x
“Biodiversity finance” OR “Conservation finance” OR “Conservation funding” OR “Conservation philanthropy” OR “Conservation trust fund” OR “Debt-for-nature swap” OR “Direct funding to community” OR “Ecological finance” OR “Environmental finance” OR “Nature finance” OR “Public funding for conservation” OR “Public-private partnership” OR “Resource user fee” OR “Simplified funding application” OR “Tourism revenue”
x
4329
x
FALSE
publication_year count
1939 1
1962 2
1967 1
1969 1
1970 1
1971 1
1972 1
1974 1
1975 2
1978 2
1979 3
1980 1
1982 2
1984 2
1985 4
1986 3
1987 5
1988 2
1989 9
1990 6
1991 5
1992 7
1993 6
1994 13
1995 8
1996 9
1997 10
1998 9
1999 10
2000 36
2001 26
2002 27
2003 51
2004 53
2005 66
2006 77
2007 91
2008 108
2009 89
2010 121
2011 166
2012 179
2013 180
2014 237
2015 223
2016 219
2017 241
2018 243
2019 302
2020 345
2021 328
2022 358
2023 342
2024 94
term count
“Public-private partnership” 36103
“Tourism revenue” 1553
“Conservation funding” 674
“Environmental finance” 356
“Debt-for-nature swap” 215
“Conservation finance” 184
“Biodiversity finance” 74
“Ecological finance” 33
“Conservation trust fund” 26
“Nature finance” 26
“Conservation philanthropy” 16
“Direct funding to community” 6
“Public funding for conservation” 6
“Resource user fee” 0
“Simplified funding application” 0
x
“Agri-Environmental and Climate Measure” OR “Environmental Impact Assessment” OR “Environmental Law” OR “Environmental public interest litigation” OR “Habitat Conservation Plan” OR “Invasive Species Regulation” OR “Land Use Regulation” OR “Legal pluralism” OR “Logging regulation” OR “National biodiversity strategy and action plan” OR NBSAP OR “Official development assistance” OR “Resource Management Law” OR “Seasonal restriction” OR “Waste Management Regulation” OR “Zoning Regulation”
x
8913
x
FALSE
publication_year count
1911 1
1918 1
1949 1
1956 1
1959 2
1962 4
1966 1
1967 1
1968 3
1969 3
1970 13
1971 2
1972 2
1973 3
1974 7
1975 6
1976 10
1977 9
1978 2
1979 8
1980 14
1981 17
1982 5
1983 8
1984 12
1985 13
1986 6
1987 12
1988 12
1989 25
1990 15
1991 31
1992 31
1993 47
1994 44
1995 60
1996 50
1997 66
1998 73
1999 78
2000 89
2001 103
2002 102
2003 117
2004 150
2005 171
2006 184
2007 184
2008 221
2009 268
2010 282
2011 308
2012 349
2013 354
2014 394
2015 369
2016 393
2017 408
2018 463
2019 481
2020 530
2021 631
2022 715
2023 746
2024 202
term count
“Environmental Law” 24846
“Environmental Impact Assessment” 22304
“Legal pluralism” 4688
“Official development assistance” 4194
“Land Use Regulation” 2735
“Zoning Regulation” 1085
“Habitat Conservation Plan” 399
“Waste Management Regulation” 352
“Environmental public interest litigation” 218
“National biodiversity strategy and action plan” 154
“Seasonal restriction” 112
NBSAP 106
“Resource Management Law” 93
“Invasive Species Regulation” 40
“Logging regulation” 36
“Agri-Environmental and Climate Measure” 9
x
“Coastal management” OR “Coastal waters management” OR “Integrated coastal zone management” OR “Integrated landscape management” OR “Invasive alien species management” OR “Landscape governance network” OR “Land and marine resource management” OR Management OR “Marine and coastal governance” OR “Marine governance” OR “Coastal governance” OR “Ocean governance” OR “Shared and integrated ocean governance” OR “Sustainable wildlife management” OR “Sustainable use” OR “Transboundary water management”
x
552071
x
FALSE
publication_year count
1770 1
1777 1
1780 1
1790 1
1817 1
1819 2
1824 1
1826 1
1827 1
1828 2
1829 1
1830 1
1832 1
1836 1
1837 1
1841 1
1845 1
1846 1
1848 1
1849 3
1852 1
1853 1
1854 1
1856 3
1858 3
1859 3
1861 2
1862 2
1863 3
1864 2
1865 2
1866 2
1868 2
1870 2
1871 2
1872 1
1875 1
1876 3
1877 1
1879 3
1880 3
1881 1
1882 3
1883 1
1884 1
1885 1
1886 3
1887 1
1888 1
1889 1
1890 3
1892 1
1893 2
1894 2
1896 3
1897 4
1898 2
1899 16
1900 1
1901 4
1902 10
1903 5
1904 9
1905 5
1906 7
1907 1
1908 3
1909 2
1910 4
1911 7
1912 4
1913 5
1914 1
1915 4
1916 5
1917 4
1918 8
1919 3
1920 3
1921 6
1922 7
1923 4
1924 4
1925 8
1926 3
1927 3
1928 8
1929 9
1930 3
1931 8
1932 6
1933 8
1934 12
1935 16
1936 14
1937 14
1938 20
1939 13
1940 19
1941 16
1942 12
1943 13
1944 11
1945 7
1946 14
1947 21
1948 34
1949 27
1950 33
1951 44
1952 47
1953 45
1954 60
1955 54
1956 45
1957 50
1958 58
1959 70
1960 60
1961 76
1962 93
1963 73
1964 98
1965 108
1966 129
1967 161
1968 133
1969 164
1970 302
1971 174
1972 223
1973 247
1974 243
1975 273
1976 330
1977 353
1978 444
1979 450
1980 478
1981 566
1982 596
1983 664
1984 670
1985 793
1986 756
1987 903
1988 949
1989 1103
1990 1364
1991 1529
1992 1717
1993 2021
1994 2297
1995 2680
1996 3030
1997 3477
1998 3727
1999 4222
2000 5349
2001 5731
2002 7130
2003 7450
2004 8312
2005 9736
2006 10976
2007 11406
2008 12760
2009 14415
2010 16821
2011 18755
2012 19823
2013 22072
2014 23457
2015 24701
2016 24336
2017 25282
2018 28056
2019 31127
2020 37630
2021 42425
2022 42061
2023 46317
2024 17209
2025 4
term count
Management 7211885
“Sustainable use” 28373
“Coastal management” 7872
“Integrated coastal zone management” 1689
“Ocean governance” 1376
“Transboundary water management” 417
“Marine governance” 386
“Coastal governance” 325
“Integrated landscape management” 182
“Sustainable wildlife management” 92
“Invasive alien species management” 50
“Marine and coastal governance” 15
“Coastal waters management” 13
“Landscape governance network” 0
“Land and marine resource management” 0
“Shared and integrated ocean governance” 0
x
“citizen science” OR “environmental impact assessment” OR “forest monitoring” OR Monitoring OR “remote sensing” OR “marine monitoring” OR “plankton monitoring” OR “fish monitoring” OR “species monitoring” OR “marine mammal monitoring” OR “coastal monitoring” OR “ocean monitoring” OR “open ocean monitoring” OR “citizen science observation programme”
x
373161
x
FALSE
publication_year count
1835 1
1836 1
1837 1
1839 1
1840 1
1842 1
1848 1
1851 1
1855 2
1857 2
1858 1
1859 3
1866 1
1869 1
1870 1
1873 2
1877 1
1879 2
1889 1
1894 1
1896 3
1897 4
1898 4
1899 2
1900 2
1901 1
1902 3
1903 1
1904 1
1905 2
1906 2
1908 1
1909 1
1910 2
1911 4
1912 2
1913 1
1915 2
1916 2
1917 1
1918 1
1919 1
1920 3
1921 1
1922 2
1924 1
1925 6
1927 3
1928 2
1929 1
1930 1
1931 5
1932 2
1935 3
1936 2
1937 5
1938 3
1939 6
1940 9
1941 4
1942 4
1943 4
1944 3
1945 3
1946 3
1947 6
1948 7
1949 4
1950 8
1951 8
1952 12
1953 16
1954 20
1955 20
1956 10
1957 5
1958 9
1959 21
1960 18
1961 26
1962 33
1963 28
1964 36
1965 34
1966 69
1967 75
1968 75
1969 67
1970 171
1971 119
1972 153
1973 191
1974 169
1975 181
1976 223
1977 281
1978 300
1979 340
1980 347
1981 396
1982 387
1983 442
1984 495
1985 553
1986 620
1987 655
1988 721
1989 788
1990 923
1991 1031
1992 1135
1993 1267
1994 1480
1995 1863
1996 1984
1997 2687
1998 3023
1999 3414
2000 3900
2001 4387
2002 4923
2003 5435
2004 5956
2005 6593
2006 7252
2007 7537
2008 8028
2009 8798
2010 9959
2011 11032
2012 11414
2013 12589
2014 13670
2015 15763
2016 15879
2017 15701
2018 18264
2019 20248
2020 25612
2021 29452
2022 35739
2023 36630
2024 11304
2025 5
term count
Monitoring 3932445
“remote sensing” 299777
“citizen science” 108293
“environmental impact assessment” 22304
“species monitoring” 8550
“marine monitoring” 6612
“fish monitoring” 4853
“forest monitoring” 2159
“ocean monitoring” 1118
“coastal monitoring” 1021
“marine mammal monitoring” 299
“plankton monitoring” 98
“open ocean monitoring” 11
“citizen science observation programme” 0
x
“Cross-Boundary Coordination Mechanism” OR “Development Control Regulation” OR “GIS and Spatial Analysis Tool” OR “Infrastructure Planning” OR “Land Use Permit” OR “Land-use planning” OR “Marine spatial planning” OR “Maritime spatial planning” OR “Master Plan” OR “Multi-functional landscape” OR “Participatory Planning Approach” OR “Spatial planning” OR “Strategic Environmental Assessment” OR “Environmental Impact assessment” OR “Buffer zone” OR “Zoning Regulation”
x
20279
x
FALSE
publication_year count
1837 1
1902 1
1911 1
1915 1
1919 1
1932 1
1934 1
1938 1
1941 2
1944 1
1945 1
1946 1
1948 1
1949 1
1954 1
1955 1
1956 1
1957 2
1958 1
1959 2
1962 4
1963 1
1964 2
1965 2
1966 3
1967 4
1968 6
1969 7
1970 12
1971 8
1972 8
1973 11
1974 9
1975 22
1976 19
1977 16
1978 17
1979 23
1980 18
1981 29
1982 17
1983 19
1984 15
1985 22
1986 15
1987 25
1988 12
1989 32
1990 45
1991 35
1992 44
1993 57
1994 66
1995 66
1996 81
1997 83
1998 102
1999 117
2000 148
2001 188
2002 189
2003 233
2004 250
2005 346
2006 326
2007 323
2008 409
2009 489
2010 606
2011 720
2012 770
2013 810
2014 865
2015 898
2016 841
2017 931
2018 1061
2019 1108
2020 1334
2021 1445
2022 2083
2023 2166
2024 643
term count
“Spatial planning” 25764
“Land-use planning” 23578
“Environmental Impact assessment” 22304
“Master Plan” 18780
“Buffer zone” 15376
“Infrastructure Planning” 5470
“Marine spatial planning” 3250
“Strategic Environmental Assessment” 2958
“Zoning Regulation” 1085
“Maritime spatial planning” 587
“Land Use Permit” 175
“Participatory Planning Approach” 132
“Multi-functional landscape” 108
“Development Control Regulation” 63
“GIS and Spatial Analysis Tool” 26
“Cross-Boundary Coordination Mechanism” 0
x
“Access and benefit sharing” OR “communal rights” OR “community rights” OR “Free prior and informed consent” OR FPIC OR “Human right” OR “Indigenous and local language” OR “Intellectual property right” OR “International Covenant on Civil and Political Right” OR “International Covenant on Economic Social and Cultural Right” OR “International Human Right Treaty” OR “International Labour Organization Convention” OR “IPLC ownership” OR “Right of nature” OR “right to water” OR UNDRIP OR “Universal Declaration of Human Right” OR “United Nations Declaration on the Right of Indigenous Peoples”
x
2959
x
FALSE
publication_year count
1896 1
1954 1
1955 1
1962 1
1964 1
1967 1
1969 1
1970 2
1971 1
1972 1
1975 1
1976 1
1977 1
1978 1
1979 1
1981 2
1982 1
1983 4
1984 3
1985 2
1986 3
1987 1
1988 7
1989 3
1990 3
1991 8
1992 11
1993 7
1994 5
1995 4
1996 7
1997 5
1998 13
1999 7
2000 17
2001 16
2002 27
2003 33
2004 36
2005 50
2006 48
2007 57
2008 77
2009 76
2010 84
2011 108
2012 106
2013 128
2014 126
2015 133
2016 174
2017 157
2018 181
2019 204
2020 246
2021 235
2022 231
2023 238
2024 59
term count
“Human right” 21809
“Intellectual property right” 2686
“right to water” 2028
“Access and benefit sharing” 1263
“community rights” 1032
“Free prior and informed consent” 589
FPIC 554
UNDRIP 467
“Right of nature” 325
“communal rights” 276
“International Labour Organization Convention” 92
“Universal Declaration of Human Right” 51
“International Human Right Treaty” 20
“International Covenant on Civil and Political Right” 18
“Indigenous and local language” 9
“International Covenant on Economic Social and Cultural Right” 5
“United Nations Declaration on the Right of Indigenous Peoples” 5
“IPLC ownership” 0
0
x
“B-Corp Certification” OR Certification OR “Fair Trade Certification” OR “Forest Stewardship Council Certification” OR “green branding” OR Guidelines OR “ISO Standards” OR Ecolabeling OR Labeling OR “LEED Certification” OR “Marine Stewardship Council Certification” OR “Aquaculture stewardship council certification” OR “Non-GMO Project Verification” OR “Organic Certification” OR “Rainforest Alliance Certification” OR Standards OR “UTZ Certified”
x
439088
x
FALSE
publication_year count
1828 1
1832 1
1834 1
1835 1
1837 2
1838 1
1843 2
1845 1
1846 1
1847 1
1851 3
1852 2
1853 1
1854 1
1855 1
1857 1
1860 1
1861 1
1862 1
1864 1
1865 2
1866 2
1867 1
1869 3
1870 3
1871 2
1872 3
1873 1
1874 6
1875 2
1877 5
1878 4
1879 3
1880 3
1881 4
1882 4
1883 1
1884 4
1885 7
1886 4
1887 6
1888 2
1889 6
1890 3
1892 6
1893 2
1894 2
1895 6
1896 4
1897 2
1898 4
1899 6
1900 14
1901 7
1902 6
1903 6
1904 6
1905 4
1906 8
1907 3
1908 4
1909 12
1910 6
1911 13
1912 11
1913 8
1914 11
1915 10
1916 14
1917 13
1918 12
1919 6
1920 15
1921 6
1922 7
1923 16
1924 22
1925 17
1926 21
1927 21
1928 16
1929 18
1930 17
1931 20
1932 19
1933 20
1934 30
1935 23
1936 21
1937 35
1938 32
1939 35
1940 30
1941 24
1942 20
1943 24
1944 26
1945 24
1946 32
1947 38
1948 48
1949 41
1950 47
1951 42
1952 59
1953 59
1954 58
1955 62
1956 71
1957 75
1958 78
1959 96
1960 92
1961 101
1962 131
1963 150
1964 164
1965 173
1966 224
1967 232
1968 262
1969 259
1970 350
1971 310
1972 327
1973 404
1974 396
1975 417
1976 463
1977 480
1978 556
1979 613
1980 668
1981 645
1982 714
1983 724
1984 766
1985 778
1986 907
1987 899
1988 1048
1989 1200
1990 1261
1991 1325
1992 1481
1993 1748
1994 1956
1995 2545
1996 2811
1997 4276
1998 5177
1999 5618
2000 6070
2001 6941
2002 7844
2003 8349
2004 9246
2005 9829
2006 10695
2007 11267
2008 11271
2009 11975
2010 13010
2011 14089
2012 14776
2013 16289
2014 17568
2015 18733
2016 19318
2017 19294
2018 20536
2019 23071
2020 27230
2021 29172
2022 30062
2023 29240
2024 8883
2025 2
term count
Standards 5562325
Labeling 1527449
Guidelines 1285167
Certification 271673
“ISO Standards” 8868
“Organic Certification” 1198
“green branding” 989
“LEED Certification” 697
Ecolabeling 255
“Fair Trade Certification” 180
“UTZ Certified” 99
“B-Corp Certification” 75
“Forest Stewardship Council Certification” 57
“Marine Stewardship Council Certification” 47
“Rainforest Alliance Certification” 39
“Non-GMO Project Verification” 10
“Aquaculture stewardship council certification” 0
x
“Bottom-up initiative” OR “Citizen-led initiative” OR “Community goal” OR “Community Garden” OR “Urban gardening” OR “Community-Led Conservation Initiative” OR “Community-Led Sustainable Transportation Initiative” OR “Community-based Renewable Energy Project” OR “Local Currency and Exchange System” OR “Local Food Cooperative” OR “Farmers’ Market” OR “Local action group” OR “Local reuse OR fix-up initiative” OR “Neighborhood Repair and Reuse Program” OR “Street and Neighborhood Cleanup Campaign” OR “Beach cleanup” OR “Transition Town Movement” OR “Zero Waste Community”
x
1817
x
FALSE
publication_year count
1961 1
1975 1
1977 1
1980 1
1981 2
1983 1
1985 1
1987 1
1988 1
1989 1
1990 2
1991 1
1992 1
1993 1
1994 4
1995 2
1996 3
1997 4
1998 8
1999 6
2000 11
2001 10
2002 7
2003 8
2004 14
2005 19
2006 20
2007 23
2008 33
2009 43
2010 40
2011 61
2012 74
2013 89
2014 111
2015 109
2016 105
2017 116
2018 120
2019 124
2020 121
2021 142
2022 170
2023 155
2024 49
term count
“Local reuse 12564
“Farmers’ Market” 4667
“Community Garden” 3493
fix-up initiative” 966
“Bottom-up initiative” 923
“Urban gardening” 811
“Community goal” 772
“Local action group” 700
“Beach cleanup” 104
“Citizen-led initiative” 85
“Transition Town Movement” 68
“Community-based Renewable Energy Project” 22
“Zero Waste Community” 21
“Community-Led Conservation Initiative” 9
“Local Food Cooperative” 5
“Community-Led Sustainable Transportation Initiative” 0
“Local Currency and Exchange System” 0
“Neighborhood Repair and Reuse Program” 0
“Street and Neighborhood Cleanup Campaign” 0
x
“Access to urban service” OR “Articulated density in city” OR Biofilter OR Bioswale OR “Blue-green corridor” OR “Constructed wetland” OR “Ecological restoration project” OR “Energy efficient building” OR “Food storage and delivery system” OR “Floodplain restoration” OR “Green infrastructure” OR “green logistics” OR “Green roof” OR “Green street” OR “Green wall” OR “Living shoreline” OR “Multi-purpose structure” OR “Permeable pavement” OR “Public transport” OR “Rain garden” OR “Riparian buffer” OR “Sustainable drainage system” OR “Sustainable infrastructure” OR “Urban agriculture space” OR “Urban forest” OR “Urban park” OR “Vegetated swale” OR “Water infrastructure”
x
18158
x
FALSE
publication_year count
1867 1
1877 1
1899 1
1907 1
1911 1
1913 1
1919 1
1928 1
1937 1
1939 1
1946 1
1948 1
1949 1
1951 1
1952 1
1955 1
1956 1
1957 2
1961 1
1962 1
1963 3
1964 1
1966 2
1968 1
1969 1
1970 9
1971 1
1972 7
1973 2
1974 7
1975 4
1976 3
1977 2
1978 7
1979 14
1980 4
1981 8
1982 6
1983 11
1984 12
1985 13
1986 21
1987 17
1988 12
1989 21
1990 21
1991 16
1992 30
1993 37
1994 38
1995 34
1996 58
1997 69
1998 68
1999 77
2000 94
2001 111
2002 143
2003 134
2004 161
2005 214
2006 228
2007 267
2008 303
2009 368
2010 499
2011 572
2012 575
2013 621
2014 705
2015 773
2016 825
2017 878
2018 1067
2019 1155
2020 1444
2021 1801
2022 1751
2023 2032
2024 779
term count
“Public transport” 50947
“Constructed wetland” 16619
“Green infrastructure” 9950
Biofilter 8854
“Urban park” 8783
“Urban forest” 8095
“Green roof” 7350
“Water infrastructure” 5951
“Energy efficient building” 4992
“Sustainable infrastructure” 2791
“Riparian buffer” 2478
“green logistics” 1960
“Permeable pavement” 1802
“Green wall” 1628
“Rain garden” 1252
“Ecological restoration project” 1042
“Green street” 606
“Sustainable drainage system” 584
“Floodplain restoration” 382
“Living shoreline” 341
Bioswale 337
“Vegetated swale” 196
“Access to urban service” 112
“Multi-purpose structure” 44
“Urban agriculture space” 29
“Blue-green corridor” 10
“Articulated density in city” 0
“Food storage and delivery system” 0
x
Biofuel OR “Biomass energy production” OR Biomimetic OR “Climate-smart agriculture” OR “Coordinated transport” OR “Coordinated heating” OR “Coordinated electrification” OR “energy sharing platform” OR “Fuel-efficient vehicle” OR “Geothermal energy” OR “Green building material” OR “High Carbon Stock landscape” OR “Hybrid vehicle” OR “local currency” OR “Microbial plant bio-fertilizer” OR “Microbial plant bio-stimulant” OR “Microbial plant regulator” OR “Microbial plant biocide” OR Minigrid OR microgrid OR “Replacement fertilizer” OR “Small renewable energy technology” OR “Smart meter” OR “Solar panel” OR “Solar photovoltaic system” OR “Wind turbine”
x
28683
x
FALSE
publication_year count
1852 1
1876 2
1901 1
1914 1
1929 1
1930 1
1931 1
1934 1
1936 2
1937 2
1941 1
1942 1
1948 1
1949 1
1951 2
1953 1
1954 2
1955 1
1958 2
1959 1
1960 3
1961 2
1962 1
1963 3
1965 3
1966 4
1967 7
1968 3
1969 4
1970 7
1971 4
1972 7
1973 7
1974 3
1975 4
1976 12
1977 13
1978 20
1979 20
1980 18
1981 17
1982 11
1983 21
1984 13
1985 24
1986 10
1987 12
1988 13
1989 11
1990 10
1991 15
1992 15
1993 16
1994 26
1995 39
1996 38
1997 35
1998 37
1999 34
2000 57
2001 53
2002 89
2003 92
2004 109
2005 164
2006 201
2007 272
2008 503
2009 582
2010 754
2011 935
2012 1036
2013 1121
2014 1295
2015 1397
2016 1563
2017 1701
2018 1836
2019 2078
2020 2377
2021 2560
2022 2886
2023 3146
2024 1308
term count
“Wind turbine” 117033
Biofuel 83382
Biomimetic 63600
microgrid 53707
“Solar panel” 27420
“Geothermal energy” 16619
“Smart meter” 14820
“Hybrid vehicle” 10422
“local currency” 4032
“Solar photovoltaic system” 3661
“Climate-smart agriculture” 3034
“Green building material” 932
“Fuel-efficient vehicle” 666
Minigrid 437
“Biomass energy production” 361
“Coordinated transport” 252
“energy sharing platform” 11
“Coordinated heating” 7
“Replacement fertilizer” 6
“Small renewable energy technology” 1
“Coordinated electrification” 0
“High Carbon Stock landscape” 0
“Microbial plant bio-fertilizer” 0
“Microbial plant bio-stimulant” 0
“Microbial plant regulator” 0
“Microbial plant biocide” 0
x
“Biodiversity compensation policy” OR “Biodiversity offset” OR “Cap and Trade System” OR “cap and share” OR “carbon credit” OR “Commodity chain regulation” OR “Commodity future” OR “Compensation for environmental damage” OR “Corporate Social Responsibility” OR “Derivative trading” OR “Ecological fiscal transfer” OR “Environmental Tax” OR “income transfer” OR “Mitigation for environmental damage” OR “Market-based financing mechanism” OR “Reducing Emission from Deforestation and Forest Degradation” OR “Reform environmental-harmful subsidy” OR “Restoration for environmental damage” OR “Socially responsible investment” OR “Subsidy Reform” OR “Tradable permit” OR “Trade ban” OR “True cost pricing”
x
10374
x
FALSE
publication_year count
1858 1
1895 1
1898 1
1903 1
1916 1
1927 1
1931 1
1932 1
1934 1
1938 1
1948 1
1950 2
1952 1
1957 1
1958 1
1959 3
1960 2
1962 2
1963 3
1964 1
1965 4
1966 2
1967 5
1968 4
1969 2
1970 2
1971 1
1972 3
1973 4
1974 3
1975 1
1976 4
1977 3
1978 3
1979 2
1980 1
1981 3
1982 2
1983 8
1984 2
1985 14
1986 2
1987 6
1988 9
1989 4
1990 5
1991 6
1992 9
1993 4
1994 14
1995 16
1996 16
1997 21
1998 14
1999 27
2000 42
2001 44
2002 43
2003 50
2004 88
2005 101
2006 107
2007 139
2008 253
2009 280
2010 348
2011 455
2012 511
2013 570
2014 552
2015 596
2016 573
2017 605
2018 630
2019 644
2020 694
2021 767
2022 819
2023 878
2024 332
term count
“Corporate Social Responsibility” 80167
“Environmental Tax” 4168
“carbon credit” 3922
“income transfer” 2521
“Socially responsible investment” 2375
“Reducing Emission from Deforestation and Forest Degradation” 1899
“Derivative trading” 1102
“Cap and Trade System” 1080
“Subsidy Reform” 1021
“Tradable permit” 1021
“Biodiversity offset” 756
“Trade ban” 458
“Compensation for environmental damage” 182
“Commodity future” 178
“cap and share” 78
“Mitigation for environmental damage” 78
“Ecological fiscal transfer” 51
“Restoration for environmental damage” 20
“Reform environmental-harmful subsidy” 11
“Market-based financing mechanism” 10
“Biodiversity compensation policy” 7
“True cost pricing” 5
“Commodity chain regulation” 3
x
“Cap resource consumption” OR “Compliance” OR “converson off-budget subsidies” OR “Corporate social responsibility” OR Enforcement OR “Food market transparency” OR “Legislative control over pesticide use” OR “Licensing and Permitting” OR “Limit on pollution” OR “Pollution Control Measure” OR “public procurement” OR Quota OR “Regulation of Resource Extraction” OR “Regulatory measure” OR “sanction to biodiversity damage” OR “Sustainable public procurement” OR “Unsustainable use of biodiversity sanction” OR “Wildlife trade regulation”
x
88670
x
FALSE
publication_year count
1796 1
1807 2
1833 1
1837 1
1849 2
1857 1
1870 1
1871 1
1872 1
1874 1
1875 1
1877 1
1881 1
1882 1
1883 3
1884 1
1888 1
1890 2
1892 2
1893 1
1895 2
1896 3
1898 1
1899 5
1901 1
1902 1
1903 1
1904 3
1905 1
1906 1
1907 4
1908 1
1909 2
1910 1
1911 2
1912 1
1915 3
1916 2
1917 6
1918 3
1919 1
1920 3
1921 1
1923 1
1925 7
1927 1
1928 1
1929 1
1930 1
1931 1
1932 2
1933 5
1934 1
1935 3
1936 3
1937 2
1938 7
1939 2
1941 3
1942 5
1943 2
1944 6
1945 1
1946 6
1947 6
1948 6
1949 3
1950 12
1951 5
1952 6
1953 5
1954 12
1955 10
1956 9
1957 12
1958 11
1959 16
1960 11
1961 20
1962 23
1963 16
1964 18
1965 23
1966 30
1967 36
1968 34
1969 40
1970 75
1971 58
1972 55
1973 60
1974 58
1975 53
1976 53
1977 66
1978 83
1979 93
1980 91
1981 102
1982 107
1983 101
1984 105
1985 124
1986 123
1987 128
1988 180
1989 184
1990 191
1991 232
1992 279
1993 323
1994 336
1995 405
1996 476
1997 572
1998 637
1999 701
2000 906
2001 1008
2002 1169
2003 1315
2004 1467
2005 1675
2006 1949
2007 2170
2008 2348
2009 2422
2010 2827
2011 3016
2012 3466
2013 3686
2014 3897
2015 4106
2016 4086
2017 4179
2018 4458
2019 5055
2020 6322
2021 6435
2022 5770
2023 6364
2024 2023
term count
“Compliance” 565163
Enforcement 488543
“Corporate social responsibility” 80167
Quota 60217
“public procurement” 15703
“Regulatory measure” 6255
“Licensing and Permitting” 4758
“Pollution Control Measure” 1367
“Limit on pollution” 432
“Sustainable public procurement” 397
“Wildlife trade regulation” 36
“Regulation of Resource Extraction” 6
“Cap resource consumption” 1
“converson off-budget subsidies” 0
“Food market transparency” 0
“Legislative control over pesticide use” 0
“sanction to biodiversity damage” 0
“Unsustainable use of biodiversity sanction” 0
x
Agroecology OR Agroforestry OR “Best practice in production” OR “Biological agriculture” OR “Carbon farming” OR “Climate-smart agriculture” OR Compost OR “Conservation tillage” OR “Crop diversification” OR “Crop rotation” OR “fair trade” OR “Holistic planned grazing” OR “Organic agriculture” OR “Reduced impact logging” OR “Regenerative agriculture” OR “Regenerative farming” OR “Responsible production” OR “Sustainable agricultural intensification” OR “Sustainable fishing practice” OR “Sustainable design” OR “Sustainable fishing” OR “Sustainable production” OR “Swidden agriculture”
x
33848
x
FALSE
publication_year count
1838 1
1849 1
1852 1
1853 1
1856 2
1857 1
1860 1
1863 1
1872 1
1876 1
1878 1
1881 1
1884 1
1886 1
1892 1
1896 1
1898 1
1899 1
1900 1
1901 1
1903 1
1908 3
1909 1
1910 1
1912 1
1913 1
1914 1
1915 2
1916 3
1918 2
1919 1
1920 2
1921 1
1923 1
1924 1
1926 1
1927 3
1928 3
1929 2
1931 2
1932 1
1933 3
1934 1
1935 2
1936 2
1937 3
1938 1
1939 1
1940 1
1941 2
1942 1
1943 2
1944 1
1945 2
1947 1
1948 3
1950 10
1951 3
1952 6
1953 5
1954 4
1955 6
1956 5
1957 2
1958 5
1959 6
1960 5
1961 6
1962 3
1963 6
1964 10
1965 9
1966 7
1967 3
1968 2
1969 5
1970 23
1971 5
1972 7
1973 5
1974 12
1975 8
1976 3
1977 11
1978 17
1979 11
1980 12
1981 12
1982 22
1983 30
1984 29
1985 20
1986 28
1987 41
1988 34
1989 48
1990 55
1991 58
1992 76
1993 113
1994 82
1995 121
1996 127
1997 139
1998 172
1999 163
2000 220
2001 289
2002 332
2003 331
2004 348
2005 390
2006 477
2007 514
2008 595
2009 766
2010 865
2011 907
2012 1028
2013 1047
2014 1252
2015 1374
2016 1294
2017 1502
2018 1913
2019 2044
2020 2641
2021 3167
2022 3546
2023 3973
2024 1360
term count
Compost 80848
Agroforestry 33609
“Crop rotation” 23710
“Sustainable production” 19206
“Organic agriculture” 10406
“fair trade” 9944
“Sustainable design” 9488
Agroecology 6895
“Conservation tillage” 6524
“Crop diversification” 3792
“Climate-smart agriculture” 3034
“Sustainable fishing” 829
“Regenerative agriculture” 658
“Reduced impact logging” 579
“Biological agriculture” 542
“Carbon farming” 517
“Responsible production” 483
“Swidden agriculture” 481
“Sustainable agricultural intensification” 423
“Sustainable fishing practice” 159
“Regenerative farming” 116
“Best practice in production” 72
“Holistic planned grazing” 24
x
“Alternative business model” OR “B-Corp” OR “B-Corporation” OR “Benefit Corporation” OR “Cradle-to-Cradle” OR “Collaborative Consumption” OR “Community-supported Agriculture” OR “Employee-owned Business” OR “Fair Trade” OR “Open Source” OR “Platform Cooperative” OR “Subscription-based Model”
x
14365
x
FALSE
publication_year count
1870 1
1887 1
1909 1
1910 1
1927 1
1954 3
1958 1
1960 2
1962 1
1967 1
1968 2
1969 3
1971 2
1972 1
1973 2
1975 1
1979 1
1980 1
1981 2
1982 3
1983 3
1984 3
1985 4
1986 3
1987 3
1988 5
1989 7
1990 5
1991 3
1992 6
1993 5
1994 6
1995 9
1996 5
1997 12
1998 3
1999 14
2000 27
2001 31
2002 41
2003 71
2004 110
2005 144
2006 187
2007 204
2008 289
2009 332
2010 357
2011 393
2012 441
2013 526
2014 548
2015 646
2016 718
2017 752
2018 893
2019 1033
2020 1258
2021 1492
2022 1425
2023 1673
2024 647
term count
“Open Source” 212211
“Fair Trade” 9944
“Collaborative Consumption” 1256
“Cradle-to-Cradle” 1239
“Community-supported Agriculture” 1185
“Benefit Corporation” 920
“Alternative business model” 510
“B-Corp” 285
“B-Corporation” 266
“Platform Cooperative” 146
“Subscription-based Model” 119
“Employee-owned Business” 48
x
“Alternative economic model” OR Bioeconomy OR “Circular economy” OR “circular bioeconomy” OR Commoning OR Degrowth OR “downscale production” OR “Ecosystem accounting” OR “Ecosystem services provisioning scheme” OR “Mainstreaming biodiversity” OR “Natural capital accounting” OR “Sharing economy” OR “Caring economics” OR “Steady state economy”
x
383811
x
FALSE
publication_year count
1500 1
1631 1
1743 1
1770 1
1790 1
1796 2
1797 1
1798 1
1799 1
1800 2
1806 1
1812 1
1814 4
1816 1
1817 2
1819 2
1820 1
1823 1
1824 1
1825 4
1827 1
1828 1
1830 1
1831 1
1832 3
1833 8
1834 6
1835 1
1836 1
1837 11
1838 4
1839 1
1840 4
1841 2
1842 1
1843 6
1844 3
1845 2
1846 4
1847 3
1848 5
1849 6
1850 4
1851 7
1852 4
1853 1
1854 4
1855 2
1856 3
1857 7
1858 4
1859 6
1860 6
1862 4
1863 1
1864 4
1865 6
1866 7
1867 3
1868 3
1869 4
1870 10
1871 10
1872 13
1873 14
1874 16
1875 8
1876 8
1877 7
1878 7
1879 15
1880 9
1881 10
1882 11
1883 9
1884 14
1885 12
1886 13
1887 13
1888 7
1889 8
1890 15
1891 11
1892 12
1893 11
1894 12
1895 9
1896 11
1897 10
1898 15
1899 20
1900 16
1901 17
1902 16
1903 16
1904 9
1905 8
1906 20
1907 16
1908 19
1909 21
1910 21
1911 17
1912 23
1913 19
1914 26
1915 15
1916 18
1917 24
1918 13
1919 21
1920 26
1921 19
1922 30
1923 25
1924 22
1925 29
1926 22
1927 23
1928 23
1929 27
1930 26
1931 31
1932 33
1933 36
1934 32
1935 31
1936 33
1937 47
1938 28
1939 31
1940 28
1941 30
1942 31
1943 44
1944 36
1945 37
1946 47
1947 33
1948 41
1949 54
1950 66
1951 57
1952 63
1953 74
1954 87
1955 76
1956 93
1957 80
1958 111
1959 113
1960 121
1961 131
1962 144
1963 162
1964 178
1965 182
1966 229
1967 202
1968 221
1969 254
1970 337
1971 258
1972 292
1973 302
1974 290
1975 304
1976 374
1977 408
1978 410
1979 529
1980 509
1981 576
1982 573
1983 655
1984 698
1985 692
1986 773
1987 795
1988 940
1989 1025
1990 1168
1991 1133
1992 1386
1993 1436
1994 1599
1995 2040
1996 2372
1997 3192
1998 3701
1999 4103
2000 4726
2001 5116
2002 5876
2003 6157
2004 6840
2005 7550
2006 8430
2007 8952
2008 9536
2009 10307
2010 11459
2011 12569
2012 13270
2013 14502
2014 15058
2015 16381
2016 18040
2017 17505
2018 18482
2019 20637
2020 24690
2021 27203
2022 28281
2023 26855
2024 8038
2025 2
term count
Commoning 5744636
“Circular economy” 39987
“Sharing economy” 10211
Bioeconomy 7801
Degrowth 2360
“circular bioeconomy” 1723
“Caring economics” 915
“Ecosystem accounting” 512
“Steady state economy” 335
“Natural capital accounting” 320
“Mainstreaming biodiversity” 211
“Alternative economic model” 181
“downscale production” 10
“Ecosystem services provisioning scheme” 0
x
“Food sovereignty” OR “Guidelines for Securing Sustainable Small-Scale Fisheries” OR “Guidelines on the Responsible Governance of Tenure of Land Fisheries and Forests” OR “Land and water stewardship”
x
904
x
FALSE
publication_year count
1989 1
1992 1
1993 1
1994 1
1997 2
2001 2
2002 2
2003 3
2004 1
2005 2
2006 2
2007 2
2008 4
2009 6
2010 14
2011 25
2012 25
2013 38
2014 59
2015 62
2016 60
2017 72
2018 63
2019 77
2020 74
2021 102
2022 76
2023 103
2024 24
term count
“Food sovereignty” 3869
“Guidelines for Securing Sustainable Small-Scale Fisheries” 95
“Guidelines on the Responsible Governance of Tenure of Land Fisheries and Forests” 43
“Land and water stewardship” 7
x
“Blockchain technology for supply chain tracking” OR Certification OR “Collaborative supply chain initiative” OR “Consumer demand for transparency” OR “Corporate disclosure mandate” OR Guideline OR “ISO Standard” OR Labeling OR “Mandatory reporting requirement” OR “Multi-stakeholder partnership for transparency” OR “Public procurement policy” OR “relocalize economy” OR Standard OR “Supplier code of conduct requirement” OR “Supply chain traceability regulation” OR “Third-party auditing” OR “Third-party verification” OR “Traffic light nutrient labeling” OR “Whistleblower protection law”
x
394816
x
FALSE
publication_year count
1828 1
1832 1
1834 1
1835 1
1837 2
1838 1
1843 2
1845 1
1847 1
1851 3
1852 2
1853 1
1854 1
1855 1
1857 1
1860 1
1862 1
1864 1
1865 2
1866 2
1867 1
1869 3
1870 3
1871 1
1872 3
1873 1
1874 6
1875 2
1877 5
1878 2
1879 2
1880 3
1881 4
1882 4
1883 1
1884 4
1885 7
1886 4
1887 6
1888 2
1889 6
1890 3
1892 6
1893 2
1894 2
1895 6
1896 4
1897 2
1898 4
1899 6
1900 14
1901 7
1902 6
1903 6
1904 6
1905 4
1906 8
1907 3
1908 4
1909 12
1910 6
1911 12
1912 11
1913 8
1914 11
1915 10
1916 14
1917 13
1918 12
1919 6
1920 15
1921 6
1922 6
1923 16
1924 22
1925 17
1926 21
1927 21
1928 17
1929 18
1930 17
1931 20
1932 18
1933 21
1934 30
1935 23
1936 21
1937 35
1938 29
1939 33
1940 30
1941 24
1942 20
1943 23
1944 26
1945 24
1946 32
1947 38
1948 49
1949 41
1950 46
1951 41
1952 58
1953 57
1954 56
1955 61
1956 71
1957 73
1958 77
1959 96
1960 90
1961 98
1962 130
1963 145
1964 156
1965 166
1966 214
1967 220
1968 253
1969 248
1970 328
1971 291
1972 308
1973 390
1974 369
1975 388
1976 427
1977 457
1978 513
1979 562
1980 613
1981 599
1982 651
1983 658
1984 702
1985 714
1986 832
1987 823
1988 957
1989 1095
1990 1150
1991 1194
1992 1363
1993 1575
1994 1773
1995 2352
1996 2575
1997 4037
1998 4841
1999 5235
2000 5636
2001 6473
2002 7229
2003 7755
2004 8558
2005 9050
2006 9786
2007 10282
2008 10291
2009 10817
2010 11697
2011 12709
2012 13285
2013 14509
2014 15797
2015 16799
2016 17345
2017 17194
2018 18402
2019 20548
2020 23909
2021 25536
2022 26772
2023 25639
2024 7650
2025 2
term count
Standard 5562324
Labeling 1527449
Certification 271673
Guideline 247851
“ISO Standard” 8868
“Third-party auditing” 498
“Third-party verification” 423
“Public procurement policy” 344
“Mandatory reporting requirement” 197
“Whistleblower protection law” 64
“Consumer demand for transparency” 9
“Collaborative supply chain initiative” 8
“Corporate disclosure mandate” 2
“relocalize economy” 2
“Supplier code of conduct requirement” 1
“Blockchain technology for supply chain tracking” 0
“Multi-stakeholder partnership for transparency” 0
“Supply chain traceability regulation” 0
“Traffic light nutrient labeling” 0
x
“Behavioral nudge” OR “Campaign on consumer good” OR “Collaborative Consumption” OR “ban on planned obsolescence” OR “Dietary transition” OR “Fee on consumption” OR “Food waste reduction” OR “frugal consumption” OR “green consumption” OR “Localized food system” OR “low-impact diet” OR “Normative feedback” OR “Overbuying discouragement” OR “plant-based diet” OR “Responsible consumption” OR “relocalize consumption” OR “reduce consumption” OR reuse OR recycle OR “shared consumption” OR “shared ownership” OR “Sustainable consumption” OR “Sustainable sourcing practice” OR “Tax on consumption”
x
63429
x
FALSE
publication_year count
1838 1
1846 1
1858 1
1872 1
1881 1
1882 1
1883 1
1887 1
1899 1
1900 1
1907 1
1910 1
1911 1
1912 1
1913 1
1914 2
1915 2
1918 1
1923 1
1924 1
1926 2
1928 1
1929 2
1930 3
1931 2
1933 2
1934 4
1935 1
1936 1
1937 2
1940 2
1943 2
1947 2
1948 1
1949 4
1950 1
1951 2
1952 1
1953 2
1954 3
1955 4
1956 4
1957 5
1958 1
1959 1
1960 6
1961 7
1962 6
1963 15
1964 13
1965 9
1966 9
1967 15
1968 15
1969 11
1970 22
1971 20
1972 32
1973 31
1974 42
1975 36
1976 40
1977 43
1978 38
1979 49
1980 58
1981 76
1982 60
1983 57
1984 70
1985 70
1986 66
1987 77
1988 98
1989 136
1990 123
1991 136
1992 207
1993 222
1994 236
1995 280
1996 301
1997 344
1998 468
1999 507
2000 559
2001 621
2002 761
2003 804
2004 880
2005 975
2006 1068
2007 1095
2008 1200
2009 1340
2010 1678
2011 1819
2012 1878
2013 2096
2014 2342
2015 2435
2016 2631
2017 2907
2018 3150
2019 3800
2020 4787
2021 5325
2022 5911
2023 6700
2024 2536
2025 3
term count
reuse 494902
recycle 428809
“Sustainable consumption” 7601
“reduce consumption” 7522
“plant-based diet” 4287
“shared ownership” 3637
“Responsible consumption” 2155
“green consumption” 2006
“Collaborative Consumption” 1256
“Tax on consumption” 951
“Food waste reduction” 871
“Dietary transition” 683
“Normative feedback” 513
“Behavioral nudge” 298
“shared consumption” 291
“Localized food system” 82
“frugal consumption” 27
“Sustainable sourcing practice” 20
“Fee on consumption” 14
“low-impact diet” 5
“Campaign on consumer good” 0
“ban on planned obsolescence” 0
“Overbuying discouragement” 0
“relocalize consumption” 0
x
“Doughnut planning” OR “Gross National Happiness” OR “Human Development Index” OR “Genuine Progress Indicator” OR “Index of Sustainable Economic Welfare” OR “Happy Planet Index” OR “Inclusive Wealth Index” OR “Living Standards Survey” OR “Social Progress Index” OR “wellbeing budget” OR “World Happiness Report” OR “Ecological Footprint”
x
3919
x
FALSE
publication_year count
1916 1
1931 1
1956 1
1959 1
1964 1
1965 1
1966 1
1968 1
1970 1
1972 1
1973 1
1976 2
1978 1
1980 1
1982 3
1983 1
1984 1
1985 1
1987 2
1988 2
1990 1
1991 1
1993 3
1994 2
1995 5
1996 6
1997 8
1998 8
1999 16
2000 14
2001 15
2002 25
2003 19
2004 38
2005 47
2006 56
2007 81
2008 100
2009 122
2010 146
2011 161
2012 152
2013 184
2014 162
2015 173
2016 145
2017 177
2018 225
2019 234
2020 254
2021 332
2022 384
2023 429
2024 169
term count
“Human Development Index” 12652
“Ecological Footprint” 9631
“Living Standards Survey” 1617
“Gross National Happiness” 779
“World Happiness Report” 256
“Genuine Progress Indicator” 234
“Social Progress Index” 225
“Happy Planet Index” 177
“Index of Sustainable Economic Welfare” 148
“Inclusive Wealth Index” 38
“wellbeing budget” 32
“Doughnut planning” 1
x
“Address corruption” OR “Disempowering corruption” OR “Convention against Corruption” OR “Disempowering elitism” OR “Disempowering lobbyism” OR “Whistleblower protection law” OR “Dismantle vested interests” OR “measures against corruption”
x
105
x
FALSE
publication_year count
1997 1
1998 1
1999 2
2001 1
2004 2
2006 5
2009 2
2010 1
2011 4
2012 3
2013 7
2014 8
2015 8
2016 4
2017 9
2018 9
2019 8
2020 9
2021 8
2022 4
2023 8
2024 1
term count
“Convention against Corruption” 826
“Address corruption” 490
“measures against corruption” 97
“Whistleblower protection law” 64
“Disempowering corruption” 0
“Disempowering elitism” 0
“Disempowering lobbyism” 0
“Dismantle vested interests” 0
x
“Community cooperation” OR “Customary access right” OR “Customary institution” OR “Customary law” OR “Customary norm” OR “Customary tenure” OR “IPLC governance” OR “IPLC led code of conduct” OR “IPLC livelihood and economy” OR “Indigenous and local knowledge” OR “Indigenous education” OR “Indigenous jurisdiction” OR “Intergenerational knowledge transmission” OR “Resource stewardship”
x
1701
x
FALSE
publication_year count
1949 1
1962 1
1965 2
1969 1
1970 1
1971 2
1972 1
1973 1
1975 1
1976 1
1977 1
1979 6
1982 2
1983 1
1985 2
1986 2
1987 1
1988 3
1989 3
1990 4
1991 3
1992 9
1993 7
1994 5
1995 2
1996 12
1997 9
1998 11
1999 10
2000 12
2001 19
2002 18
2003 19
2004 16
2005 37
2006 27
2007 41
2008 32
2009 49
2010 43
2011 59
2012 50
2013 66
2014 78
2015 69
2016 76
2017 84
2018 95
2019 100
2020 128
2021 151
2022 128
2023 154
2024 45
term count
“Customary law” 11453
“Indigenous education” 2444
“Community cooperation” 929
“Customary institution” 715
“Customary norm” 674
“Customary tenure” 503
“Resource stewardship” 427
“Indigenous and local knowledge” 387
“Indigenous jurisdiction” 119
“Intergenerational knowledge transmission” 25
“IPLC governance” 1
“Customary access right” 0
“IPLC led code of conduct” 0
“IPLC livelihood and economy” 0
x
“Capacity Building and Training Program” OR “Citizen Science Initiative” OR “Co-Design” OR “Co-Creation” OR “Community-based monitoring” OR “Community-based natural resource management” OR “Community Meeting and Workshop” OR “Community-Based Participatory Research” OR “Deliberative Democracy Process” OR “Global action network” OR “Multi-stakeholder platform” OR “Online Platform and Social Media” OR Participation OR “Participation in international process” OR “Participatory evaluation and learning” OR “Participatory Mapping and GIS” OR “Public Consultation and Hearing” OR “Stakeholder engagement”
x
113292
x
FALSE
publication_year count
1868 1
1870 1
1874 1
1881 1
1896 2
1899 1
1902 1
1903 2
1904 1
1909 1
1910 1
1912 2
1914 1
1915 2
1916 2
1917 1
1918 1
1920 2
1921 1
1923 4
1925 1
1928 2
1929 3
1931 1
1932 1
1933 2
1934 2
1935 1
1936 2
1937 5
1938 4
1939 8
1940 3
1941 5
1942 3
1943 3
1944 1
1945 3
1946 3
1947 3
1948 10
1949 3
1950 10
1951 4
1952 3
1953 14
1954 15
1955 9
1956 10
1957 17
1958 14
1959 14
1960 17
1961 10
1962 20
1963 26
1964 25
1965 19
1966 33
1967 35
1968 33
1969 56
1970 103
1971 57
1972 56
1973 63
1974 80
1975 76
1976 89
1977 95
1978 106
1979 101
1980 118
1981 129
1982 134
1983 127
1984 139
1985 175
1986 137
1987 169
1988 174
1989 232
1990 234
1991 297
1992 278
1993 335
1994 402
1995 532
1996 536
1997 727
1998 856
1999 916
2000 1118
2001 1169
2002 1323
2003 1407
2004 1671
2005 1922
2006 2217
2007 2297
2008 2633
2009 2874
2010 3326
2011 3584
2012 4006
2013 4327
2014 4769
2015 5013
2016 5185
2017 5299
2018 5451
2019 6117
2020 7242
2021 8001
2022 12058
2023 9586
2024 2742
term count
Participation 1140707
“Co-Design” 27236
“Co-Creation” 23445
“Stakeholder engagement” 13281
“Community-Based Participatory Research” 7010
“Community-based natural resource management” 982
“Citizen Science Initiative” 744
“Community-based monitoring” 589
“Multi-stakeholder platform” 331
“Online Platform and Social Media” 87
“Global action network” 38
“Capacity Building and Training Program” 28
“Deliberative Democracy Process” 20
“Community Meeting and Workshop” 14
“Participatory Mapping and GIS” 14
“Public Consultation and Hearing” 8
“Participatory evaluation and learning” 7
“Participation in international process” 6
x
“Access to information law” OR “Accountable evaluation and learning” OR “Adaptive management framework” OR “Bottom-up governance approach” OR “Capacity building initiative” OR “Citizen assembly” OR “Conflict resolution mechanism” OR “Culturally appropriate governance model” OR “Deliberative democracy mechanism” OR “Deep democracy” OR “Gender-responsive governance” OR “Gender inclusive governance” OR “Local governance structure” OR “Open government initiative” OR “Participatory decision-making process” OR “Policy co-creation” OR “Policy co-design” OR “Policy monitoring” OR “Transparency and accountability mechanism”
x
883
x
FALSE
publication_year count
1976 1
1982 1
1984 1
1988 1
1990 1
1993 5
1994 4
1995 5
1996 6
1997 2
1998 1
1999 3
2000 5
2001 8
2002 5
2003 13
2004 10
2005 19
2006 10
2007 15
2008 18
2009 29
2010 23
2011 33
2012 27
2013 38
2014 26
2015 42
2016 59
2017 56
2018 48
2019 52
2020 55
2021 74
2022 56
2023 88
2024 43
term count
“Policy monitoring” 1025
“Conflict resolution mechanism” 1010
“Capacity building initiative” 964
“Citizen assembly” 599
“Adaptive management framework” 385
“Local governance structure” 273
“Open government initiative” 269
“Deep democracy” 236
“Participatory decision-making process” 234
“Access to information law” 188
“Transparency and accountability mechanism” 56
“Policy co-design” 26
“Bottom-up governance approach” 17
“Policy co-creation” 17
“Gender-responsive governance” 12
“Deliberative democracy mechanism” 8
“Gender inclusive governance” 8
“Accountable evaluation and learning” 0
“Culturally appropriate governance model” 0
x
“Agenda 21” OR “Bilateral agreement” OR “Basel Convention” OR “Cartagena Protocol” OR “Convention on Biological Diversity” OR CMS OR “Convention on International Trade in Endangered Species of Wild Fauna and Flora” OR CITES OR “MARPOL” OR “EU Green Deal” OR “Global trade system” OR “International agreement” OR “Kyoto Protocol” OR “Minamata Convention” OR “Montreal Protocol” OR “Multilateral environmental agreement” OR “Nagoya Protocol” OR “Paris Agreement” OR “Rio Declaration” OR “Ramsar Convention” OR “Sustainable Development Goal” OR SDG OR “Stockholm Convention” OR “United Nations Convention to Combat Desertification” OR “United Nations Framework Convention on Climate Change”
x
157599
x
FALSE
publication_year count
1724 1
1822 1
1832 1
1836 1
1848 3
1849 1
1851 2
1856 1
1866 1
1867 1
1868 2
1869 2
1870 4
1871 5
1872 10
1873 1
1874 1
1876 2
1877 4
1878 3
1879 3
1880 4
1881 5
1882 1
1883 1
1884 5
1885 2
1886 4
1887 2
1888 2
1889 8
1890 2
1891 11
1892 9
1893 12
1894 6
1895 12
1896 10
1897 14
1898 26
1899 23
1900 18
1901 23
1902 21
1903 17
1904 20
1905 16
1906 23
1907 14
1908 22
1909 31
1910 46
1911 30
1912 28
1913 35
1914 36
1915 34
1916 31
1917 40
1918 22
1919 36
1920 36
1921 42
1922 45
1923 50
1924 45
1925 38
1926 56
1927 48
1928 67
1929 66
1930 60
1931 67
1932 64
1933 86
1934 63
1935 69
1936 65
1937 81
1938 103
1939 108
1940 96
1941 100
1942 93
1943 84
1944 92
1945 108
1946 108
1947 117
1948 141
1949 193
1950 167
1951 189
1952 187
1953 265
1954 237
1955 272
1956 242
1957 270
1958 252
1959 289
1960 293
1961 356
1962 365
1963 423
1964 414
1965 468
1966 609
1967 628
1968 628
1969 616
1970 572
1971 568
1972 598
1973 586
1974 678
1975 503
1976 504
1977 534
1978 566
1979 552
1980 587
1981 628
1982 612
1983 621
1984 633
1985 733
1986 726
1987 857
1988 795
1989 845
1990 836
1991 930
1992 1087
1993 1123
1994 1088
1995 1155
1996 1607
1997 1687
1998 1821
1999 2050
2000 2530
2001 2178
2002 2342
2003 2359
2004 2740
2005 3515
2006 3366
2007 3322
2008 3244
2009 3467
2010 4562
2011 4855
2012 3878
2013 4258
2014 4501
2015 4968
2016 5269
2017 6114
2018 6436
2019 7230
2020 8837
2021 8904
2022 9207
2023 10021
2024 3101
term count
CITES 2899410
CMS 82025
“Sustainable Development Goal” 66781
SDG 48684
“International agreement” 23333
“Paris Agreement” 13042
“Kyoto Protocol” 11341
“United Nations Framework Convention on Climate Change” 5066
“Convention on Biological Diversity” 5012
“Agenda 21” 4373
“Bilateral agreement” 4251
“Montreal Protocol” 2983
“MARPOL” 1634
“Stockholm Convention” 1599
“Multilateral environmental agreement” 1179
“Global trade system” 1124
“Ramsar Convention” 1109
“Nagoya Protocol” 1107
“Convention on International Trade in Endangered Species of Wild Fauna and Flora” 932
“Basel Convention” 723
“Minamata Convention” 712
“Rio Declaration” 704
“Cartagena Protocol” 646
“EU Green Deal” 398
“United Nations Convention to Combat Desertification” 366
x
“Anti-discrimination law” OR “Decentralization law” OR “Environmental justice mechanism” OR “Equitable access to justice” OR “Freedom of information law” OR “Institutional entrepreneurship” OR “Institutional reform” OR “Institutional setting reform” OR “Judicial independence” OR “Legal empowerment of marginalized group” OR “Ombudsman institution” OR “Public participation law”
x
2759
x
FALSE
publication_year count
1949 1
1956 1
1964 1
1966 1
1970 4
1971 3
1972 1
1973 3
1974 6
1975 3
1978 2
1979 2
1980 2
1981 3
1982 2
1983 2
1984 1
1985 8
1986 5
1987 5
1988 4
1989 6
1990 12
1991 7
1992 13
1993 15
1994 15
1995 22
1996 22
1997 24
1998 31
1999 35
2000 41
2001 48
2002 46
2003 49
2004 60
2005 70
2006 75
2007 84
2008 87
2009 91
2010 111
2011 95
2012 117
2013 153
2014 148
2015 142
2016 130
2017 125
2018 150
2019 134
2020 136
2021 143
2022 109
2023 125
2024 28
term count
“Institutional reform” 13189
“Judicial independence” 4352
“Anti-discrimination law” 2160
“Institutional entrepreneurship” 1268
“Freedom of information law” 405
“Ombudsman institution” 334
“Decentralization law” 181
“Equitable access to justice” 30
“Public participation law” 16
“Legal empowerment of marginalized group” 1
“Environmental justice mechanism” 0
“Institutional setting reform” 0
x
“Behavioral change” OR “Behavioral nudge” OR “Campaign on consumer goods” OR “Choice architecture” OR “Consumption reduction” OR “Dietary transition” OR “Food waste reduction” OR “Normative feedback” OR Nudging OR “Overbuying discouragement” OR “Peer-to-peer communication” OR “Social norm”
x
25185
x
FALSE
publication_year count
1902 1
1925 1
1934 1
1937 2
1938 2
1940 2
1942 3
1944 1
1945 1
1946 1
1947 1
1950 1
1951 1
1953 1
1954 4
1956 3
1957 4
1958 3
1959 1
1960 3
1961 5
1962 5
1963 3
1964 5
1965 5
1966 5
1967 5
1968 9
1969 7
1970 15
1971 18
1972 19
1973 19
1974 17
1975 16
1976 18
1977 28
1978 35
1979 21
1980 27
1981 25
1982 32
1983 36
1984 39
1985 44
1986 34
1987 48
1988 39
1989 47
1990 52
1991 65
1992 71
1993 77
1994 88
1995 82
1996 113
1997 113
1998 116
1999 119
2000 177
2001 181
2002 196
2003 239
2004 268
2005 316
2006 348
2007 403
2008 423
2009 518
2010 695
2011 721
2012 833
2013 979
2014 1094
2015 1133
2016 1263
2017 1246
2018 1400
2019 1589
2020 2039
2021 2248
2022 2230
2023 2329
2024 758
term count
“Behavioral change” 85753
“Social norm” 42854
Nudging 21238
“Consumption reduction” 5772
“Peer-to-peer communication” 1592
“Choice architecture” 1430
“Food waste reduction” 871
“Dietary transition” 683
“Normative feedback” 513
“Behavioral nudge” 298
“Campaign on consumer goods” 2
“Overbuying discouragement” 0
x
“Awareness campaign” OR “Capacity building” OR “Capacity development” OR “Cultural exchange program” OR “Cultural revitalization” OR “Indigenous Peoples’ rights training and capacity building” OR “Leadership and capacity for action” OR “Practical learning” OR “Inner capacity” OR “Inner development goal”
x
10723
x
FALSE
publication_year count
1917 1
1951 1
1952 2
1956 1
1959 1
1961 1
1969 1
1970 5
1974 1
1975 2
1976 1
1978 2
1980 7
1981 2
1982 2
1983 1
1984 2
1985 3
1986 1
1987 3
1988 1
1989 3
1990 8
1991 7
1992 8
1993 19
1994 13
1995 25
1996 25
1997 33
1998 35
1999 48
2000 63
2001 75
2002 82
2003 101
2004 130
2005 154
2006 177
2007 213
2008 241
2009 253
2010 339
2011 379
2012 422
2013 473
2014 482
2015 490
2016 567
2017 547
2018 605
2019 697
2020 727
2021 866
2022 881
2023 1077
2024 417
term count
“Capacity building” 50789
“Awareness campaign” 12802
“Capacity development” 7199
“Practical learning” 3544
“Cultural revitalization” 625
“Cultural exchange program” 211
“Inner capacity” 142
“Inner development goal” 10
“Indigenous Peoples’ rights training and capacity building” 0
“Leadership and capacity for action” 0
x
“Artistic expression” OR “Civic engagement initiative” OR “Community dialogue” OR “Cultural event” OR “Cultural narrative” OR “Cultural transformation” OR “Education program” OR “Mass media campaign” OR “Regenerative culture” OR “Social media platform” OR “Storytelling initiative” OR “Youth empowerment program”
x
17186
x
FALSE
publication_year count
1830 1
1902 1
1906 1
1930 1
1936 1
1939 1
1945 1
1947 1
1953 1
1955 2
1956 1
1957 3
1959 2
1960 3
1961 1
1962 2
1963 1
1965 3
1966 2
1968 2
1969 2
1970 5
1971 5
1972 11
1973 9
1974 5
1975 5
1976 6
1977 9
1978 10
1979 15
1980 24
1981 17
1982 16
1983 17
1984 14
1985 26
1986 23
1987 18
1988 30
1989 44
1990 39
1991 47
1992 47
1993 59
1994 85
1995 88
1996 107
1997 107
1998 139
1999 145
2000 195
2001 198
2002 244
2003 214
2004 293
2005 332
2006 385
2007 365
2008 407
2009 428
2010 547
2011 510
2012 571
2013 636
2014 695
2015 749
2016 778
2017 791
2018 804
2019 989
2020 1294
2021 1320
2022 1182
2023 1575
2024 479
term count
“Education program” 143908
“Social media platform” 37169
“Artistic expression” 9659
“Cultural transformation” 7806
“Cultural event” 6754
“Cultural narrative” 3352
“Mass media campaign” 1888
“Community dialogue” 748
“Regenerative culture” 213
“Youth empowerment program” 106
“Civic engagement initiative” 69
“Storytelling initiative” 56
x
“Environmental education” OR “Transformational learning” OR “Transformative learning” OR Curriculum OR “K-12” OR “Adult learning” OR “Social learning” OR “Solution space” OR “Transformation lab” OR “Imagination infrastructure” OR Imagination OR “Experiential teaching” OR “Experiential learning”
x
74284
x
FALSE
publication_year count
1800 1
1802 1
1809 1
1830 1
1851 1
1854 1
1868 2
1869 1
1870 2
1871 1
1872 1
1874 1
1875 1
1876 2
1877 3
1878 1
1880 1
1883 1
1886 2
1887 1
1888 1
1889 1
1890 2
1896 4
1897 2
1898 3
1899 1
1901 4
1902 4
1903 5
1904 4
1905 3
1907 2
1908 3
1909 1
1910 3
1911 1
1912 5
1913 1
1914 1
1915 1
1916 3
1917 1
1918 3
1919 2
1920 3
1921 3
1922 1
1923 2
1925 1
1926 1
1927 3
1928 4
1929 2
1930 3
1931 4
1933 5
1934 8
1935 4
1936 4
1937 5
1938 4
1939 7
1940 7
1941 3
1942 6
1943 3
1944 7
1945 9
1946 6
1947 3
1948 6
1949 9
1950 3
1951 6
1952 3
1953 13
1954 8
1955 6
1956 4
1957 8
1958 10
1959 9
1960 14
1961 17
1962 20
1963 11
1964 16
1965 21
1966 22
1967 23
1968 26
1969 55
1970 64
1971 37
1972 43
1973 58
1974 53
1975 50
1976 63
1977 73
1978 70
1979 75
1980 89
1981 95
1982 110
1983 106
1984 108
1985 143
1986 151
1987 155
1988 145
1989 218
1990 228
1991 215
1992 275
1993 297
1994 375
1995 384
1996 514
1997 568
1998 599
1999 635
2000 863
2001 909
2002 987
2003 1006
2004 1288
2005 1426
2006 1663
2007 1756
2008 2025
2009 2175
2010 2399
2011 2715
2012 2874
2013 3212
2014 3271
2015 3363
2016 3563
2017 3486
2018 3553
2019 3893
2020 5193
2021 4803
2022 4653
2023 5141
2024 1566
term count
Curriculum 619638
Imagination 173055
“K-12” 49037
“Environmental education” 28929
“Experiential learning” 28371
“Social learning” 27267
“Solution space” 18398
“Adult learning” 12465
“Transformative learning” 7926
“Transformational learning” 1735
“Experiential teaching” 912
“Transformation lab” 46
“Imagination infrastructure” 2
x
“Alternative vision” OR “Community health” OR “Cultural pluralism” OR “Eco-centrism” OR Ecohealth OR “Harmony with nature” OR “Holistic worldview” OR “Interconnectedness of all life forms” OR “Living in balance” OR “Localism and decentralization of governance” OR “Natural social contract” OR “One health” OR “Planetary health” OR “Recognition of indigenous wisdom and knowledge” OR “Recognition of the intrinsic value of biodiversity” OR “Respect for cultural diversity” OR “Rights of nature” OR “Unitive education” OR “Unitive narrative” OR “Unitive vision” OR “Water-energy-food nexus” OR “Holistic management” OR “Indigenous worldview”
x
12962
x
FALSE
publication_year count
1918 1
1921 1
1926 1
1938 2
1939 2
1942 1
1949 1
1950 1
1952 4
1953 2
1954 1
1956 2
1957 1
1959 1
1960 1
1961 1
1962 1
1963 1
1964 2
1965 6
1966 4
1967 4
1968 1
1969 4
1970 1
1971 4
1972 4
1973 8
1974 2
1975 5
1976 4
1977 7
1978 10
1979 4
1980 12
1981 8
1982 11
1983 6
1984 12
1985 18
1986 23
1987 14
1988 32
1989 31
1990 27
1991 27
1992 40
1993 35
1994 36
1995 56
1996 47
1997 72
1998 54
1999 77
2000 79
2001 101
2002 87
2003 116
2004 132
2005 169
2006 185
2007 215
2008 244
2009 219
2010 351
2011 350
2012 367
2013 403
2014 470
2015 507
2016 571
2017 671
2018 709
2019 760
2020 1051
2021 1259
2022 1201
2023 1558
2024 454
term count
“Community health” 86296
“One health” 16896
“Cultural pluralism” 3448
“Alternative vision” 3294
“Planetary health” 3067
“Harmony with nature” 2552
“Holistic management” 2098
“Water-energy-food nexus” 1370
“Rights of nature” 1315
“Indigenous worldview” 842
Ecohealth 649
“Respect for cultural diversity” 303
“Holistic worldview” 289
“Unitive education” 188
“Living in balance” 187
“Eco-centrism” 123
“Unitive vision” 49
“Unitive narrative” 31
“Interconnectedness of all life forms” 10
“Natural social contract” 10
“Recognition of the intrinsic value of biodiversity” 1
“Localism and decentralization of governance” 0
“Recognition of indigenous wisdom and knowledge” 0
x
“Social network” OR “Advocacy network” OR “Boundary organization” OR “Change agent” OR “Collaborative initiative” OR “Community network” OR Connector OR Facilitator OR “Innovation broker” OR “Indigenous peoples’ network” OR Intermediary OR Multiplier OR “Boundary spanner” OR “Knowledge network” OR “Learning network” OR “Middle actor” OR “Multi-stakeholder platform” OR “New collaborative setting” OR “Partnership network” OR “Policy network” OR “Respectful partnership” OR “Technology network” OR “Transition intermediary”
x
324759
x
FALSE
publication_year count
1780 1
1797 1
1799 1
1800 1
1805 1
1808 3
1811 1
1821 1
1822 1
1824 1
1825 1
1826 1
1830 1
1831 2
1832 2
1833 2
1834 1
1835 2
1836 1
1837 5
1838 1
1840 2
1841 1
1842 1
1844 1
1845 1
1848 2
1849 4
1850 2
1851 3
1852 2
1853 2
1855 1
1856 1
1857 1
1859 3
1860 1
1861 1
1862 2
1863 5
1864 3
1865 1
1866 2
1867 1
1868 3
1869 2
1870 9
1871 4
1872 2
1873 3
1874 7
1875 3
1876 4
1877 5
1878 5
1879 6
1880 1
1881 3
1882 4
1883 5
1884 8
1885 6
1886 8
1887 2
1888 4
1889 2
1890 7
1891 6
1892 5
1893 7
1894 2
1895 3
1896 5
1897 6
1898 3
1899 8
1900 10
1901 7
1902 6
1903 4
1904 5
1905 4
1906 4
1907 3
1908 8
1909 8
1910 6
1911 17
1912 3
1913 8
1914 10
1915 7
1916 12
1917 11
1918 7
1919 9
1920 9
1921 8
1922 15
1923 7
1924 9
1925 10
1926 13
1927 22
1928 8
1929 5
1930 10
1931 9
1932 11
1933 14
1934 21
1935 25
1936 12
1937 18
1938 12
1939 25
1940 16
1941 13
1942 20
1943 20
1944 17
1945 16
1946 21
1947 17
1948 23
1949 30
1950 24
1951 32
1952 31
1953 35
1954 38
1955 26
1956 30
1957 30
1958 44
1959 61
1960 52
1961 61
1962 73
1963 78
1964 77
1965 82
1966 111
1967 94
1968 110
1969 148
1970 211
1971 147
1972 143
1973 158
1974 180
1975 188
1976 226
1977 222
1978 225
1979 284
1980 293
1981 327
1982 341
1983 333
1984 364
1985 371
1986 428
1987 426
1988 498
1989 546
1990 650
1991 635
1992 755
1993 899
1994 1004
1995 1291
1996 1501
1997 2187
1998 2555
1999 2899
2000 3382
2001 3788
2002 4394
2003 4687
2004 5080
2005 5668
2006 6398
2007 6729
2008 7356
2009 8112
2010 9172
2011 10236
2012 10882
2013 12422
2014 13191
2015 14481
2016 15246
2017 15979
2018 16888
2019 19085
2020 22684
2021 24639
2022 24120
2023 26957
2024 10827
2025 5
term count
Facilitator 2329859
Connector 665017
“Social network” 283227
Multiplier 276368
Intermediary 98835
“Learning network” 19011
“Change agent” 11973
“Knowledge network” 7663
“Community network” 6256
“Policy network” 6226
“Technology network” 3941
“Collaborative initiative” 2608
“Advocacy network” 1602
“Boundary spanner” 1477
“Partnership network” 764
“Boundary organization” 478
“Multi-stakeholder platform” 331
“Innovation broker” 134
“Respectful partnership” 126
“Transition intermediary” 49
“Middle actor” 42
“Indigenous peoples’ network” 5
“New collaborative setting” 2
x
“Art-science collaboration” OR “Co-creation of knowledge” OR “Co-creative inquiry” OR “Collaborative knowledge production” OR “Collaborative research and learning” OR “Collective knowledge generation” OR “Breeding knowledge” OR “Joint knowledge development” OR “Jointly constructed knowledge” OR “Knowledge co-creation” OR “Knowledge co-design” OR “Indigenous knowledge” OR “Local knowledge” OR “Indigenous and local knowledge” OR “Participatory knowledge creation” OR “Multiple evidence-based approach” OR “Participatory research and development” OR “Knowledge co-production” OR “Knowledge system” OR “Weaving knowledge”
x
8850
x
FALSE
publication_year count
1887 1
1890 1
1910 1
1951 1
1952 1
1960 1
1961 1
1962 1
1966 1
1968 2
1969 1
1970 3
1972 1
1975 1
1976 3
1977 1
1978 2
1979 4
1980 2
1981 1
1982 1
1983 3
1984 3
1985 4
1986 8
1987 10
1988 10
1989 7
1990 9
1991 18
1992 14
1993 17
1994 26
1995 34
1996 44
1997 34
1998 43
1999 43
2000 70
2001 54
2002 83
2003 86
2004 110
2005 138
2006 145
2007 175
2008 160
2009 247
2010 225
2011 281
2012 282
2013 358
2014 372
2015 355
2016 419
2017 392
2018 449
2019 527
2020 669
2021 830
2022 835
2023 932
2024 298
term count
“Local knowledge” 17875
“Indigenous knowledge” 17056
“Knowledge system” 16138
“Knowledge co-production” 786
“Knowledge co-creation” 517
“Co-creation of knowledge” 486
“Indigenous and local knowledge” 387
“Art-science collaboration” 208
“Collaborative knowledge production” 172
“Participatory research and development” 104
“Weaving knowledge” 72
“Breeding knowledge” 67
“Collaborative research and learning” 43
“Multiple evidence-based approach” 22
“Collective knowledge generation” 19
“Jointly constructed knowledge” 12
“Joint knowledge development” 10
“Participatory knowledge creation” 8
“Knowledge co-design” 7
“Co-creative inquiry” 5
x
“Belief system” OR Biophilia OR Connection OR “Developmental psychology” OR Epiphany OR “Identity shift” OR “Inner transformation” OR Mindset OR Oneness OR “Paradigm shift” OR “Personal meaning” OR “Personal transformation” OR “Support group” OR “Transformative learning spaces”
x
1358901
x
FALSE
publication_year count
1500 2
1631 1
1670 1
1688 1
1692 1
1724 1
1743 1
1762 1
1770 2
1775 1
1777 1
1780 1
1789 1
1790 2
1792 1
1794 1
1795 2
1796 3
1797 1
1798 1
1799 2
1800 3
1801 2
1803 1
1804 1
1805 1
1806 1
1807 2
1808 5
1809 2
1810 1
1811 2
1812 3
1814 2
1816 2
1817 3
1818 1
1819 5
1820 2
1821 5
1822 2
1823 1
1824 5
1825 5
1826 3
1827 2
1828 3
1829 4
1830 4
1831 8
1832 7
1833 20
1834 9
1835 6
1836 10
1837 30
1838 9
1839 5
1840 9
1841 5
1842 10
1843 24
1844 6
1845 9
1846 9
1847 4
1848 11
1849 14
1850 10
1851 27
1852 14
1853 8
1854 14
1855 13
1856 14
1857 17
1858 17
1859 19
1860 18
1861 12
1862 13
1863 15
1864 15
1865 17
1866 20
1867 11
1868 22
1869 21
1870 50
1871 50
1872 45
1873 47
1874 60
1875 40
1876 55
1877 50
1878 49
1879 44
1880 57
1881 57
1882 47
1883 52
1884 54
1885 70
1886 51
1887 52
1888 56
1889 56
1890 59
1891 50
1892 44
1893 52
1894 53
1895 52
1896 37
1897 45
1898 54
1899 76
1900 70
1901 67
1902 57
1903 56
1904 40
1905 65
1906 81
1907 69
1908 61
1909 85
1910 90
1911 90
1912 97
1913 76
1914 102
1915 80
1916 75
1917 86
1918 91
1919 83
1920 123
1921 104
1922 123
1923 109
1924 123
1925 144
1926 119
1927 136
1928 135
1929 136
1930 150
1931 140
1932 158
1933 185
1934 198
1935 205
1936 192
1937 193
1938 196
1939 197
1940 206
1941 161
1942 183
1943 176
1944 161
1945 151
1946 193
1947 214
1948 235
1949 237
1950 258
1951 276
1952 282
1953 316
1954 360
1955 368
1956 472
1957 415
1958 459
1959 571
1960 571
1961 639
1962 678
1963 824
1964 792
1965 892
1966 1042
1967 1077
1968 1220
1969 1300
1970 1642
1971 1348
1972 1514
1973 1619
1974 1743
1975 1845
1976 2047
1977 2167
1978 2262
1979 2522
1980 2658
1981 2735
1982 2909
1983 3097
1984 3243
1985 3407
1986 3603
1987 3732
1988 4253
1989 4610
1990 5079
1991 5265
1992 5994
1993 6429
1994 7208
1995 8648
1996 9674
1997 11928
1998 13773
1999 14980
2000 17064
2001 18685
2002 21169
2003 22226
2004 25339
2005 27834
2006 30363
2007 32045
2008 33980
2009 37125
2010 40956
2011 44518
2012 47725
2013 51775
2014 54676
2015 57883
2016 58981
2017 59353
2018 64032
2019 70771
2020 83773
2021 89577
2022 89950
2023 89839
2024 25820
2025 5
term count
Oneness 20253162
Connection 1452732
“Paradigm shift” 73654
Mindset 56357
“Support group” 30412
“Belief system” 17106
“Developmental psychology” 11642
Epiphany 7894
“Personal meaning” 4706
“Personal transformation” 2064
Biophilia 1467
“Identity shift” 979
“Inner transformation” 386
“Transformative learning spaces” 66
x
“Community bond” OR “Community solidarity” OR “Connection to nature” OR “Continuity with ancestors” OR “Cultural preservation” OR “Cultural revitalization” OR “Environmental stewardship” OR “Ethical framework and value” OR Festival OR “Human-nature connection” OR “Human-nature connection” OR HNC OR “Interfaith collaboration” OR “Interfaith dialogue” OR Mindfulness OR Presence OR “Plant medicine” OR “Prayer and meditation” OR Psychedelic OR Ritual OR Ceremony OR “Sacred teaching” OR Wisdom OR “Spiritual connection” OR Spirituality OR “Human-nature relation” OR Connectedness
x
479040
x
FALSE
publication_year count
1762 1
1797 1
1800 1
1801 1
1803 1
1809 1
1810 1
1811 1
1814 1
1818 1
1819 2
1822 1
1824 1
1825 2
1826 3
1827 2
1830 2
1831 5
1832 3
1833 5
1834 5
1835 2
1836 2
1837 11
1838 4
1840 2
1841 2
1842 4
1843 7
1844 3
1845 6
1846 1
1848 2
1849 6
1850 4
1851 6
1852 2
1853 1
1854 2
1855 3
1856 3
1857 4
1858 4
1859 9
1860 1
1861 4
1862 2
1863 5
1864 3
1865 6
1866 5
1867 3
1868 2
1869 12
1870 23
1871 15
1872 8
1873 10
1874 21
1875 8
1876 16
1877 8
1878 10
1879 8
1880 16
1881 17
1882 10
1883 9
1884 17
1885 17
1886 18
1887 18
1888 13
1889 14
1890 20
1891 12
1892 14
1893 12
1894 10
1895 14
1896 9
1897 6
1898 18
1899 22
1900 21
1901 15
1902 18
1903 11
1904 12
1905 15
1906 13
1907 18
1908 22
1909 24
1910 30
1911 38
1912 34
1913 25
1914 38
1915 30
1916 21
1917 25
1918 20
1919 30
1920 22
1921 24
1922 38
1923 42
1924 35
1925 48
1926 35
1927 51
1928 43
1929 36
1930 50
1931 58
1932 41
1933 53
1934 60
1935 62
1936 48
1937 58
1938 60
1939 50
1940 53
1941 61
1942 46
1943 47
1944 47
1945 35
1946 53
1947 57
1948 72
1949 82
1950 81
1951 94
1952 103
1953 101
1954 115
1955 119
1956 149
1957 129
1958 157
1959 171
1960 217
1961 216
1962 244
1963 251
1964 274
1965 312
1966 396
1967 365
1968 397
1969 454
1970 558
1971 507
1972 536
1973 605
1974 623
1975 598
1976 700
1977 759
1978 819
1979 853
1980 928
1981 977
1982 1054
1983 1158
1984 1163
1985 1288
1986 1321
1987 1415
1988 1541
1989 1761
1990 1866
1991 2022
1992 2161
1993 2289
1994 2549
1995 3272
1996 3612
1997 5287
1998 6255
1999 6708
2000 7221
2001 7937
2002 8417
2003 8887
2004 9826
2005 10180
2006 10785
2007 11431
2008 11641
2009 12265
2010 13254
2011 14543
2012 15243
2013 16875
2014 18217
2015 19803
2016 20972
2017 20870
2018 23025
2019 24883
2020 29258
2021 30545
2022 30109
2023 30686
2024 10121
2025 2
term count
Presence 5964933
Connectedness 1174135
Ritual 182957
Wisdom 162043
Festival 115543
Spirituality 85440
Mindfulness 80532
Ceremony 61408
HNC 12278
Psychedelic 7956
“Plant medicine” 4363
“Environmental stewardship” 4244
“Connection to nature” 4052
“Cultural preservation” 2514
“Interfaith dialogue” 1809
“Spiritual connection” 1001
“Community solidarity” 879
“Cultural revitalization” 625
“Prayer and meditation” 469
“Community bond” 294
“Human-nature connection” 131
“Human-nature connection” 131
“Sacred teaching” 98
“Human-nature relation” 60
“Interfaith collaboration” 43
“Ethical framework and value” 13
“Continuity with ancestors” 10
x
“Balanced relationship” OR “Caring for nature” OR Empathy OR Compassion OR Equity OR Justice OR “Good life” OR Holism OR “Systems thinking” OR Integrity OR Transparency OR Interdependence OR “Precautionary principle” OR Reciprocity OR relationality OR “relational values” OR Resilience OR Adaptability OR “Respect for Diversity” OR Sufficiency OR Thriving OR Stewardship OR Values
x
1033157
x
FALSE
publication_year count
1688 1
1743 1
1762 1
1770 1
1780 1
1798 1
1800 1
1801 1
1805 1
1808 2
1809 2
1812 1
1817 3
1819 1
1823 1
1824 2
1827 1
1828 3
1829 1
1831 2
1832 2
1833 5
1834 4
1835 1
1836 5
1837 7
1838 5
1839 2
1840 4
1841 2
1842 3
1843 6
1844 1
1845 3
1846 2
1848 4
1849 6
1850 4
1851 3
1852 3
1853 5
1854 5
1855 1
1856 7
1857 5
1858 5
1859 5
1860 4
1861 6
1862 2
1863 5
1864 6
1865 6
1866 5
1867 3
1868 7
1869 4
1870 12
1871 14
1872 8
1873 8
1874 20
1875 15
1876 14
1877 20
1878 17
1879 15
1880 24
1881 23
1882 13
1883 17
1884 19
1885 14
1886 17
1887 17
1888 16
1889 20
1890 17
1891 10
1892 21
1893 15
1894 20
1895 13
1896 16
1897 14
1898 22
1899 23
1900 33
1901 22
1902 28
1903 21
1904 22
1905 23
1906 33
1907 25
1908 27
1909 39
1910 44
1911 38
1912 41
1913 30
1914 43
1915 39
1916 31
1917 34
1918 45
1919 38
1920 46
1921 46
1922 57
1923 58
1924 70
1925 86
1926 64
1927 72
1928 53
1929 69
1930 92
1931 82
1932 75
1933 83
1934 94
1935 107
1936 105
1937 97
1938 95
1939 106
1940 110
1941 84
1942 77
1943 68
1944 74
1945 81
1946 104
1947 109
1948 132
1949 132
1950 147
1951 141
1952 160
1953 181
1954 188
1955 201
1956 227
1957 248
1958 261
1959 287
1960 365
1961 408
1962 427
1963 488
1964 554
1965 590
1966 672
1967 696
1968 784
1969 877
1970 1158
1971 906
1972 1067
1973 1148
1974 1136
1975 1294
1976 1469
1977 1523
1978 1544
1979 1797
1980 1805
1981 1880
1982 1967
1983 2104
1984 2201
1985 2330
1986 2500
1987 2602
1988 2842
1989 3107
1990 3439
1991 3545
1992 3950
1993 4333
1994 4757
1995 5567
1996 6191
1997 7637
1998 8553
1999 9471
2000 10803
2001 11689
2002 13546
2003 14590
2004 16283
2005 18059
2006 19981
2007 21606
2008 23243
2009 25560
2010 28766
2011 31896
2012 34541
2013 38078
2014 41098
2015 43621
2016 44614
2017 45994
2018 50621
2019 57521
2020 68513
2021 77246
2022 77470
2023 83754
2024 28472
2025 8
term count
Values 11444173
Justice 676414
Integrity 597322
Equity 384829
Resilience 322020
Transparency 274253
relationality 257528
Adaptability 242155
Empathy 122643
Thriving 106890
Interdependence 84146
Reciprocity 60909
Compassion 56258
Sufficiency 55552
Stewardship 55277
Holism 18331
“Systems thinking” 16839
“Good life” 13281
“Precautionary principle” 6740
“Respect for Diversity” 1636
“Balanced relationship” 1044
“relational values” 995
“Caring for nature” 959

Differences between the used media search term and the original media search term:

Show the code
diffviewer::visual_diff(
    "input/tca_corpus/search terms/media.org.txt",
    "input/tca_corpus/search terms/media.txt"
)

==== APPENDIX ====

Strategies/Options/Instruments for transformative change

The file strategies_options.txt contains the terms for the different strategies and options.

I will now iterate through all of them and identify the number of hits per individual search term. This can be used as a result in itself in interpreting the importance of each term as well as to shorten the search term to be able to use it together with the TCA search term.

Methods

Prepare Search Terms

Show the code
fn <- file.path("data", "tca_corpus", "strategies_options_terms.rds")
if (!file.exists(fn)) {
    # Read the lines from the file
    sts <- params$sts_strategies_options

    # Remove empty or NA lines or Main header ("# ")
    sts <- sts[!is.na(sts) & nchar(sts) > 0]
    sts <- grep("^# ", sts, invert = TRUE, value = TRUE)

    # Create a vector that indicates where each new first-level element should start
    split_points_level1 <- cumsum(grepl("^## \\(", sts))

    # Split the vector into a list
    list_sts_level1 <- split(sts, split_points_level1)

    # For each first-level element, split into second-level elements
    list_sts_level2 <- lapply(list_sts_level1, function(x) {
        split_points_level2 <- cumsum(grepl("^###", x))
        split(x, split_points_level2)
    })

    # Remove the lines with "## (" and "###" from each element of the list
    strategies_options_terms <- lapply(
        list_sts_level2,
        function(x) {
            lapply(
                x,
                function(y) {
                    res <- y[!grepl("^## \\(|^###", y)]
                    if (length(res) == 0) {
                        res <- NULL
                    }
                    return(res)
                }
            )
        }
    )

    # Remove empty elements from the second-level lists
    strategies_options_terms <- lapply(
        strategies_options_terms,
        function(sts) {
            i <- sapply(
                sts,
                length
            ) > 0
            return(sts[i])
        }
    )

    # Extract the names for the first-level list
    names_level1 <- gsub("^## \\(|\\)$", "", sts[grepl("^## \\(", sts)])

    # Extract the names for the second-level lists
    names_level2 <- lapply(list_sts_level1, function(x) gsub("^### |\\)$", "", x[grepl("^###", x)]))
    names(names_level2) <- names_level1

    # Assign the names to the first and second level list
    names(strategies_options_terms) <- names_level1
    strategies_options_terms <- Map(setNames, strategies_options_terms, names_level2)

    saveRDS(strategies_options_terms, file = fn)
} else {
    strategies_options_terms <- readRDS(fn)
}

First Run the search terms

Show the code
fn <- file.path("data", "tca_corpus", "strategies_options.rds")
if (!file.exists(file.path(fn))) {
    strategies_options_terms <- readRDS(file.path("data", "tca_corpus", "strategies_options_terms.rds"))
    strategies_options <- lapply(
        names(strategies_options_terms),
        function(sec) {
            message("- ", sec)
            lapply(
                names(strategies_options_terms[[sec]]),
                function(conc) {
                    message("    |- ", conc)
                    result <- list()
                    result$term <- paste(strategies_options_terms[[sec]][[conc]], collapse = " ")
                    result$count <- NA
                    result$shortened <- TRUE
                    rel_excluded <- NA
                    result$years <- NA
                    result$assess_search_terms <- NA
                    try(
                        {
                            result$count <- openalexR::oa_fetch(
                                title_and_abstract.search = IPBES.R::compact(paste0("(", params$s_1_tca_corpus, ") AND (", result$term, ")")),
                                count_only = TRUE,
                                output = "list",
                                verbose = FALSE
                            )$count
                            result$shortened <- FALSE
                            result$assess_search_terms <- assess_search_term(
                                st = strategies_options_terms[[sec]][[conc]],
                                remove = " OR$",
                                excl_others = FALSE,
                                mc.cores = params$mc.cores
                            ) |>
                                dplyr::arrange(desc(count))
                            result$years <- openalexR::oa_fetch(
                                title_and_abstract.search = IPBES.R::compact(paste0("(", params$s_1_tca_corpus, ") AND (", result$term, ")")),
                                group_by = "publication_year",
                                output = "dataframe",
                                verbose = FALSE
                            ) |>
                                dplyr::select(
                                    publication_year = key_display_name,
                                    count
                                ) |>
                                dplyr::arrange(
                                    publication_year
                                )
                        },
                        silent = TRUE
                    )
                    if (result$shortened) {
                        x <- reduce_search_term_length(
                            search_term = result$term,
                            AND_term = params$s_1_tca_corpus,
                            verbose = FALSE
                        )
                        result$term <- x$search_term
                        result$count <- x$final_count
                        result$shortened <- TRUE
                        result$rel_excluded <- x$rel_excluded
                        result$years <- openalexR::oa_fetch(
                            title_and_abstract.search = IPBES.R::compact(paste0("(", params$s_1_tca_corpus, ") AND (", result$term, ")")),
                            group_by = "publication_year",
                            output = "dataframe",
                            verbose = FALSE,
                            progress = TRUE
                        )
                        result$assess_search_terms <- x$assessment
                    }
                    return(result)
                }
            )
        }
    )

    # Assign the names to the first and second level list
    names(strategies_options) <- names(strategies_options_terms)
    for (sec in names(strategies_options)) {
        names(strategies_options[[sec]]) <- names(strategies_options_terms[[sec]])
    }

    saveRDS(strategies_options, file = fn)
} else {
    strategies_options <- readRDS(fn)
}

Results

Count of Strategies / Options

Show the code
#|

strategies_options <- readRDS(file.path("data", "tca_corpus", "strategies_options.rds"))

data <- lapply(
    names(strategies_options),
    function(str) {
        lapply(
            names(strategies_options[[str]]),
            function(con) {
                return(
                    data.frame(
                        Strategy = str,
                        Concept = con,
                        Count = strategies_options[[str]][[con]]$count,
                        Count_until_1992 = sum(strategies_options[[str]][[con]]$years$count[strategies_options[[str]][[con]]$years$publication_year <= 1992]),
                        Count_after_1992 = sum(strategies_options[[str]][[con]]$years$count[strategies_options[[str]][[con]]$years$publication_year > 1992])
                    )
                )
            }
        ) |>
            do.call(what = rbind)
    }
) |>
    do.call(what = rbind)

data |>
    IPBES.R::table_dt(
        fn = "strategies_options_counts",
        fixedColumns = list(leftColumns = 2)
    )

Plot of the Count of the Strategies / Options split at 1992

This data is corrected for different research oputput before and after 1992 by dividing by the overall reasarch output in thap perio as reflected on OpenAlex.

Show the code
#|

oa <- openalexR::oa_fetch(
    search = "",
    group_by = "publication_year",
    output = "dataframe",
    verbose = FALSE
)
Show the code
oa_until_1992 <- sum(oa$count[oa$key < 1992])
oa_after_1992 <- sum(oa$count[oa$key > 1992])

data <- data |>
    dplyr::mutate(
        Strategy = paste0(Strategy, " |||| ", Concept),
        Count_until_1992 = Count_until_1992 / oa_until_1992,
        Count_after_1992 = Count_after_1992 / oa_after_1992,
    ) |>
    dplyr::group_by(Strategy) |>
    dplyr::mutate(
        Count_until_1992_p = Count_until_1992 / sum(Count_until_1992 + Count_after_1992),
        Count_after_1992_p = Count_after_1992 / sum(Count_until_1992 + Count_after_1992)
    )


figure <- data |>
    tidyr::pivot_longer(
        cols = c(Count_until_1992, Count_after_1992),
        names_to = "Period",
        values_to = "Count_year"
    ) |>
    # Create the plot
    ggplot(aes(x = Strategy, y = Count_year, fill = Period)) +
    geom_bar(stat = "identity") +
    theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1)) +
    labs(x = "Strategy", y = "Count", fill = "Period")


ggplot2::ggsave(
    file.path("figures", "tca_corpus", "strategies_options_time_split.pdf"),
    width = 12,
    height = 18,
    figure
)
ggplot2::ggsave(
    file.path("figures", "tca_corpus", "strategies_options_time_split.png"),
    width = 12,
    height = 18,
    figure
)

figure <- data |>
    tidyr::pivot_longer(
        cols = c(Count_until_1992_p, Count_after_1992_p),
        names_to = "Period",
        values_to = "Count_p_year"
    ) |>
    # Create the plot
    ggplot(aes(x = Strategy, y = Count_p_year, fill = Period)) +
    geom_bar(stat = "identity") +
    theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1)) +
    labs(x = "Strategy", y = "Count", fill = "Period")


ggplot2::ggsave(
    file.path("figures", "tca_corpus", "strategies_options_time_split_p.pdf"),
    width = 12,
    height = 18,
    figure
)
ggplot2::ggsave(
    file.path("figures", "tca_corpus", "strategies_options_time_split_p.png"),
    width = 12,
    height = 18,
    figure
)

The graph shows the by overall research output corrected publications before and after 1992 for each Strategy ||| Option

To download high resolution, click here

The second graph shows the proportion of the by overall research output corrected publications before and after 1992 for each Strategy ||| Option

To download high resolution, click here

Assesment of individual terms

These numbers are the number of hits of TCA Corpus AND each individual term of the Option

Show the code
strategies_options <- readRDS(file.path("data", "tca_corpus", "strategies_options.rds"))

lapply(
    names(strategies_options),
    function(str) {
        # cat("\n\n### ", str, "\n")
        lapply(
            names(strategies_options[[str]]),
            function(con) {
                # cat("\n#### ", con, "\n")
                res <- data.frame(
                    Strategy = str,
                    Concept = con,
                    Term = strategies_options[[str]][[con]]$assess_search_terms$term,
                    Count = strategies_options[[str]][[con]]$assess_search_terms$count
                )
                # strategies_options[[str]][[con]]$assess_search_terms |>
                #     knitr::kable(
                #         caption = paste0(str, " -- ", con)
                #     )
            }
        ) |>
            do.call(what = rbind)
    }
) |>
    do.call(what = rbind) |>
    IPBES.R::table_dt(
        fn = "strategies_options_assessment_terms",
        fixedColumns = list(leftColumns = 2)
    )

Counts over Years for each TCA Corpus AND Strategies / Options

Show the code
#|

strategies_options <- readRDS(file.path("data", "tca_corpus", "strategies_options.rds"))

lapply(
    names(strategies_options),
    function(str) {
        # cat("\n\n### ", str, "\n")
        lapply(
            names(strategies_options[[str]]),
            function(con) {
                # cat("\n#### ", con, "\n")
                res <- data.frame(
                    Strategy = str,
                    Concept = con,
                    Year = strategies_options[[str]][[con]]$years,
                    Count = strategies_options[[str]][[con]]$count
                )

                # strategies_options[[str]][[con]]$years |>
                #     knitr::kable(
                #         caption = paste0(str, " -- ", con)
                #     )
            }
        ) |>
            do.call(what = rbind)
    }
) |>
    do.call(what = rbind) |>
    IPBES.R::table_dt(
        fn = "strategies_options_counts_per_year",
        fixedColumns = list(leftColumns = 2)
    )

Differences between Initial and Final Search Terms

The differences are shown as a

CASE

The differences are between the original search term and the used search term for CASES.

Show the code
diffviewer::visual_diff(
    file.path("input", "tca_corpus", "search terms", "case.org.txt"),
    file.path("input", "tca_corpus", "search terms", "case.txt")
)

Strategies / Concepts

The differences are between the original search term and the used search term for STRATEGIES_CONCEPTS.

Show the code
diffviewer::visual_diff(
    file.path("input", "tca_corpus", "search terms", "strategies_options.org.txt"),
    file.path("input", "tca_corpus", "search terms", "strategies_options.txt")
)

Reuse

Citation

BibTeX citation:
@report{krug2024,
  author = {Krug, Rainer M.},
  title = {Data {Management} {Report} {Transformative} {Change}
    {Assessment} {Corpus} - {SOD}},
  date = {2024-05-02},
  doi = {10.5281/zenodo.10251349},
  langid = {en},
  abstract = {The literature search for the assessment corpus was
    conducted using search terms provided by the experts and refined in
    co-operation with the Knowldge and Data task force. The search was
    conducted using {[}OpenAlex{]}(https://openalex.org), scripted from
    {[}R{]}(https://cran.r-project.org) to use the
    {[}API{]}(https://docs.openalex.org). Search terms for the following
    searches were defined: **Transformative Change**, **Nature /
    Environment** and **additional search terms for individual chapters
    and sub-chapters** To assess the quality of the corpus, sets of
    key-papers were selected by the experts to verify if these are in
    the corpus. These key-papers were selected per chapter / sub-chapter
    to ensure that the corpus is representative of each chapter.}
}
For attribution, please cite this work as:
Krug, Rainer M. 2024. “Data Management Report Transformative Change Assessment Corpus - SOD.” Report Transformative Change Assessment Corpus. https://doi.org/10.5281/zenodo.10251349.